我想从我的班级中分派一个事件和一个url。
我知道我可以做到以下几点:
import flash.events.EventDispatcher;
private function thumbClick(e:MouseEvent):void
{
dispatchEvent(new Event("clicked"));
}但我不知道我该怎么把救援队和活动一起送过去...?
此外,在我的主要应用程序运行器中,我尝试:
var my_ev:Event = new Event("clickedImage");
my_ev.hasOwnProperty(e.currentTarget.link);
dispatchEvent(my_ev);...but我不确定这是不是正确的语法。
谢谢你的帮助,jml
发布于 2010-01-02 11:36:55
Allan是正确的,您将希望创建一个自定义事件。需要注意的几件事:
import flash.events.Event;
public class ThumbnailEvent extends Event
{
public static var THUMB_CLICKED:String = "thumbClicked";
private var _url:String;
public function get url():String { return _url }
public function ThumbnailEvent (type:String, url:String, bubbles:Boolean=false, cancelable:Boolean=false)
{
super(type,bubbles,cancelable);
_url = url
}
override public function clone():Event
{
return new ThumbnailEvent(type, url, bubbles, cancelable);
}
}自定义事件需要始终覆盖克隆。如果事件是冒泡的或以任何方式传递的,则需要此方法。自定义属性应该是具有只读getter的私有属性。这是一个标准约定,用于防止在事件的整个生命周期中更改属性。
使用此方法会将代码更改为:
private function thumbClick(e:MouseEvent):void
{
dispatchEvent(new ThumbnailEvent(ThumbnailEvent.THUMB_CLICKED, myUrlString));
}
//elsewhere
addEventListener(ThumbnailEvent.THUMB_CLICKED, thumbClickedHandler);
private function thumbClickedHandler(event:ThumbnailEvent):void
{
var link:String = event.url;
}Custom Event tutorial at adobe.com
发布于 2010-01-02 11:19:31
我只做了一个自定义的事件类。
import flash.events.Event;
public class ThumbnailEvent extends Event
{
public static var THUMB_CLICKED:String = "thumbClicked";
public var url:String;
public function ThumbnailEvent (type:String,url:String)
{
super(type);
this.url = url
}
}然后像这样使用它:
var thumbEvent:ThumbnailEvent = new ThumbnailEvent(ThumbnailEvent.THUMB_CLICKED,"myURL");
dispatchEvent(thumbEvent);https://stackoverflow.com/questions/1990451
复制相似问题