【问题标题】:AS3 The ways to dispatchEventAS3 事件调度方式
【发布时间】:2011-03-27 11:32:34
【问题描述】:

我想知道这两个dispatchEvent方法的区别...

//1.
    eventObj:YouTubeSearchEvent = new YouTubeSearchEvent(YouTubeSearchEvent.CHANGE_VIDEO_READY);
                    eventObj.videoId = theOneVideoId;
                    dispatchEvent(event);

//2
    dispatchEvent(new YouTubeSearchEvent(YouTubeSearchEvent.CHANGE_VIDEO_READY, videoId));

根据我的自定义事件,我需要两个参数...但想知道第一种方法是否与第二种方法不同...

我的自定义事件:

package com.search.events
{
    import flash.events.Event;

    public class YouTubeSearchEvent extends Event
    {
        public static const FEED_VIDEO_READY:String="feed_video_ready";
        public static const CHANGE_VIDEO_READY:String="change_video_ready";

        public var videoResult:*;

        public function YouTubeSearchEvent(type:String, videoResult:*)
        {
            super(type);

            this.videoResult=videoResult;

        }
    }
}

问题来自我的另一篇文章 AS3 Pass Custom Event Data Question

【问题讨论】:

    标签: flash events apache-flex dispatchevent


    【解决方案1】:

    在内部,它们没有什么不同。运行时可能会对代码进行一些优化,但我对此表示怀疑。

    最大的不同是第一个比第二个更易读。另外我认为您的意思是在第一个中设置videoResult 而不是videoId,因为课堂上没有。

    编辑: 实际上,您在第一个中创建显式对象引用存在细微差别,这取决于代码的位置可能会或可能不会徘徊一段时间,从而消耗内存。虽然我不会太担心这是 Flash,但您已经使用了相当多的内存我不认为一个事件对象引用会导致问题。此外,当运行时发现它没有被使用时,它会被垃圾收集。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-17
      相关资源
      最近更新 更多