Просмотр полной версии : Неправильно работает Event.REMOVED
Для Спрайта добавляю событие Event.REMOVED. Но, почему-то, это событие вызывается, когда наводишь мышь на объект. Это проблема компилятора или я че-то не так делаю?
Ты добавляешь событие (вернее доп условия для выстреливания события) или обработчик(слушатель) события?
Если обработчик, то ты уверен что он паралельно не добавлен на мышиное событие?
MerlinTwi
09.03.2007, 01:07
Еще возможен вариант, что спрайт в составе кнопки (Button), кнопка при изменении своего состояния (up, over, down) удаляет спрайт (при этом генерится Event.REMOVED) предыдущего состояния и цепляет спрайт для нового (Event.ADDED).
а да кстати. может по баблингу пройти, проверяй event.target
Мерлин прав. Как это обойти?
А может тебе надо Event.REMOVED для кнопки?
А может тебе надо Event.REMOVED для кнопки?
Именно это
Так вешай на кнопку, а не на спрайт в ней.
А ещё лучше собери примерчик, чтобы на пальцах не объяснять.
Проверяй eventObject.target
Событие всплывающее, вот оно попадает в 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);
}
}
}
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.