首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AS3:通过调度Event - pass参数进行事件调度?

AS3:通过调度Event - pass参数进行事件调度?
EN

Stack Overflow用户
提问于 2010-01-02 10:53:39
回答 2查看 2.6K关注 0票数 0

我想从我的班级中分派一个事件和一个url。

我知道我可以做到以下几点:

代码语言:javascript
复制
import flash.events.EventDispatcher;

private function thumbClick(e:MouseEvent):void
{
   dispatchEvent(new Event("clicked"));
}

但我不知道我该怎么把救援队和活动一起送过去...?

此外,在我的主要应用程序运行器中,我尝试:

代码语言:javascript
复制
var my_ev:Event = new Event("clickedImage");
my_ev.hasOwnProperty(e.currentTarget.link);
dispatchEvent(my_ev);

...but我不确定这是不是正确的语法。

谢谢你的帮助,jml

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-02 11:36:55

Allan是正确的,您将希望创建一个自定义事件。需要注意的几件事:

代码语言:javascript
复制
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的私有属性。这是一个标准约定,用于防止在事件的整个生命周期中更改属性。

使用此方法会将代码更改为:

代码语言:javascript
复制
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

票数 5
EN

Stack Overflow用户

发布于 2010-01-02 11:19:31

我只做了一个自定义的事件类。

代码语言:javascript
复制
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
    }
}

然后像这样使用它:

代码语言:javascript
复制
var thumbEvent:ThumbnailEvent = new ThumbnailEvent(ThumbnailEvent.THUMB_CLICKED,"myURL");
dispatchEvent(thumbEvent);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1990451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档