PDA

Просмотр полной версии : Неправильно работает Event.REMOVED


BigDan
08.03.2007, 18:19
Для Спрайта добавляю событие Event.REMOVED. Но, почему-то, это событие вызывается, когда наводишь мышь на объект. Это проблема компилятора или я че-то не так делаю?

etc
08.03.2007, 22:29
Покажи код.

Nirth
08.03.2007, 22:32
Ты добавляешь событие (вернее доп условия для выстреливания события) или обработчик(слушатель) события?

Если обработчик, то ты уверен что он паралельно не добавлен на мышиное событие?

MerlinTwi
09.03.2007, 01:07
Еще возможен вариант, что спрайт в составе кнопки (Button), кнопка при изменении своего состояния (up, over, down) удаляет спрайт (при этом генерится Event.REMOVED) предыдущего состояния и цепляет спрайт для нового (Event.ADDED).

Nirth
09.03.2007, 02:29
а да кстати. может по баблингу пройти, проверяй event.target

BigDan
09.03.2007, 18:48
Мерлин прав. Как это обойти?

etc
09.03.2007, 18:49
А может тебе надо Event.REMOVED для кнопки?

BigDan
09.03.2007, 21:03
А может тебе надо Event.REMOVED для кнопки?
Именно это

etc
09.03.2007, 21:04
Так вешай на кнопку, а не на спрайт в ней.
А ещё лучше собери примерчик, чтобы на пальцах не объяснять.

Nirth
09.03.2007, 21:25
Проверяй eventObject.target

BigDan
09.03.2007, 21:31
Вот собственно исходник

etc
09.03.2007, 21:43
Событие всплывающее, вот оно попадает в testSprite.

package {
import flash.display.Sprite;
import flash.events.*;
public class RootClass extends Sprite {
private var myBut:MyBut = new MyBut();
private var testSprite:Sprite = new Sprite();
public function RootClass():void{
testSprite.x = this.stage.stageWidth/2;
testSprite.y = this.stage.stageHeight/2;
this.addChild(testSprite);
testSprite.addChild(myBut);
testSprite.addEventListener(Event.REMOVED,onTestSpriteRemoved);
myBut.addEventListener(MouseEvent.CLICK,clickHandler);
}
private function onTestSpriteRemoved(evt:Event):void{
trace(evt);
if (evt.target==testSprite) {
trace('removed');
}
}

private function clickHandler(event:MouseEvent):void {
removeChild(testSprite);
}
}
}

BigDan
10.03.2007, 23:04
Спасибо.