我想知道这两个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
答案 0 :(得分:1)
在内部他们并没有什么不同。运行时可能会对代码进行一些优化,但我对此表示怀疑。
最大的区别在于第一个比第二个更具可读性。另外我认为你的意思是将videoResult
设置为第一个而不是videoId
,因为班级中没有一个。{/ p>
修改强> 实际上,你在第一个中创建一个激活对象引用有一点点差别,这取决于代码可能会或可能不会挂起一段时间因此消耗内存。这是Flash虽然我不会太在意它,你已经使用了相当多的内存我不认为一个事件对象引用会导致问题。此外,当运行时发现它没有被使用时,它会被垃圾收集。