0

我想知道这两个 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

4

1 回答 1

1

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

最大的区别是第一个比第二个更具可读性。另外我认为你的意思是videoResult在第一个中设置,而不是videoId因为课堂上没有一个。

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

于 2010-08-09T19:16:56.607 回答