| Alex Lexcuk |
08.09.2009 22:06 |
Event повторно шлется c боками.
Че это за бок с самодельными событиями?
Код AS3:
package lex{
import flash.events.Event;
public class LexEvent extends Event {
public static const FINISH:String = "finish";
public var params:Object;
public function LexEvent(_type:String, _params:Object) {
super( _type)
this.params = _params;
}
public override function toString():String {
return formatToString("CustomEvent", "params", "type", "bubbles", "cancelable");
}
}
}
вот так работает
Код AS3:
package
{
import flash.display.*;
import flash.events.*;
import lex.LexEvent;
import flash.utils.*;
import flash.system.*;
public class Bugs extends MovieClip
{
private var fixEvt:LexEvent;
private var finCount:uint;
public function Bugs()
{
fixEvt = new LexEvent(LexEvent.FINISH, { obj:this });
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
addEventListener(LexEvent.FINISH, finishHandler);
}
private function finishHandler(evt:Object):void {
trace(getQualifiedClassName(evt));
}
private function enterFrameHandler(evt:Event):void {
fixEvt = new LexEvent(LexEvent.FINISH, { obj:this });
dispatchEvent(fixEvt);
}
}
}
показывает в трасе
Код:
lex::LexEvent
lex::LexEvent
lex::LexEvent
а теперь не будем каждый раз создавать LexEvent, а хочется брать уже готовый
Код AS3:
package
{
import flash.display.*;
import flash.events.*;
import lex.LexEvent;
import flash.utils.*;
import flash.system.*;
public class Bugs extends MovieClip
{
private var fixEvt:LexEvent;
private var finCount:uint;
public function Bugs()
{
fixEvt = new LexEvent(LexEvent.FINISH, { obj:this });
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
addEventListener(LexEvent.FINISH, finishHandler);
}
private function finishHandler(evt:Object):void {
trace(getQualifiedClassName(evt));
}
private function enterFrameHandler(evt:Event):void {
dispatchEvent(fixEvt);
}
}
}
Побежали уже не ЛехЕвенты, а просто Евенты
Код:
flash.events::Event
flash.events::Event
flash.events::Event
И вот я думаю, а должно ли так быть?
|