Можно ли захватить событие, сохранить его в свойстве класса, выполнить какое-либо действие, а затем, когда это действие завершится, отправить событие и затем извлечь исходный файл event.target в прослушивателе?
Сейчас я стараюсь не использовать пользовательское событие, так как оно вызывает у меня огромное количество изжоги при отправке его с загруженного SWF-файла.
Вот код (который не работает), который, надеюсь, будетпомогите понять, что я пытаюсь сделать:
package
{
import fl.transitions.easing.Regular;
import fl.transitions.Tween;
import fl.transitions.TweenEvent;
import flash.display.MovieClip;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
public class Document extends MovieClip
{
protected var _event:Event;
public function Document():void
{
initLoader();
}
protected function initLoader():void
{
var loader:URLLoader = new URLLoader();
loader.load(new URLRequest('some_url.xml'));
loader.addEventListener(Event.COMPLETE, intermediaryHandler);
}
protected function intermediaryHandler(event:Event):void
{
_event = event;
doSomeAction();
}
protected function doSomeAction():void
{
var tween:Tween = new Tween(someObject, "alpha", Regular.easeIn, 0, 1, 5);
tween.addEventListener(TweenEvent.MOTION_FINISH, tweenHandler);
}
protected function tweenHandler(event:TweenEvent):void
{
/*
* Imagine some object is listening to this class for Event.COMPLETE.
* I would like to retrieve the event.target that I could have retrieved
* in the `intermediaryHandler()` method, in the listener to the following
* event being dispatched:
*/
dispatchEvent(_event);
}
}
}
Я могу сохранить событие в переменной класса, а затем получить к нему доступ позже, но вишня на глазури могла бы получить его отсобытие в моем примере tweenHandler()
.
Edit Ну, это не выглядит возможным (спасибо @bhups за объяснение).В настоящее время я сохраняю извлеченное событие в свойстве _event
, а затем получаю его позже, когда оно мне понадобится.Кажется, это работает, но не прекрасно.