PDA

Просмотр полной версии : Маска и перемещение Спрайта под маской


GoodWin74
02.05.2010, 12:46
Написал код, где создается спрайт который под маской прямоугольника в нем естественно будут какието объекты и тп. На сцене уже созданы три объекта Кнопка вверх кнопка вниз и маска в виде клипа белого прямоугольника. Спрайт создается кодом.

myMask(маска), up_btn(Кнопка вверх), down_btn(Кнопка вниз)

Сам код:

var Sprite:Sprite = new Sprite();
addChild(Sprite);
Sprite.mask = myMask;
Sprite.x = 10;
Sprite.y = 10;
up_btn.addEventListener(MouseEvent.CLICK, function(e:Event){Sprite.y -= 10});
down_btn.addEventListener(MouseEvent.CLICK, function(e:Event){Sprite.y += 10});



Но при нажатии не чего не происходит :( Подскажите как перемещать объект под маской...

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

Вот так все работает.
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
}
}

mikhailk
02.05.2010, 14:55
Кстати, во флеше это момент принципиальный.
Если пишешь имя переменной и IDE подсвечивает ее как синтаксис AS3, надо переименовывать не раздумывая.

GoodWin74
02.05.2010, 23:36
да это чисто пример имена другие отличные от Типов...