Мне кажется, проблема либо в назывании объекта именем "Sprite", либо в анонимной функции.
Вот так все работает.

Код AS3:
var st:Sprite = new Sprite();
var msk:Sprite = new Sprite();
var mskS:Sprite = new Sprite();
var up:Sprite = new Sprite();
var down:Sprite = new Sprite();
addChild(st)
addChild(msk)
addChild(mskS)
addChild(up)
addChild(down)
with (st)
{
graphics.beginFill(0x000000);
graphics.drawRect(0,0,10,10);
graphics.endFill();
x = 15;
y = 15;
mask = msk;
}
with (msk)
{
graphics.beginFill(0x000000);
graphics.drawRect(0,0,20,20);
graphics.endFill();
x = 10
y = 10
}
with (mskS)
{
graphics.lineStyle(2,0x000000)
graphics.beginFill(0x000000,0);
graphics.drawRect(0,0,20,20);
graphics.endFill();
x = 10
y = 10
}
with (up)
{
graphics.beginFill(0x00FFFF);
graphics.drawRect(0,0,10,10);
graphics.endFill();
addEventListener(MouseEvent.CLICK,moveSprite);
buttonMode = true
x = 50;
}
with (down)
{
graphics.beginFill(0x00FFFF);
graphics.drawRect(0,0,10,10);
graphics.endFill();
addEventListener(MouseEvent.CLICK,moveSprite);
buttonMode = true
x = 50;
y = 15;
}
function moveSprite(evt:MouseEvent)
{
if(evt.currentTarget == up)
{
st.y -= 1
} else {
st.y += 1
}
}