Flash AS3调度事件的方法
我想知道这两种dispatchEvent方法之间的区别Flash AS3调度事件的方法,flash,events,apache-flex,dispatchevent,Flash,Events,Apache Flex,Dispatchevent,我想知道这两种dispatchEvent方法之间的区别 //1. eventObj:YouTubeSearchEvent = new YouTubeSearchEvent(YouTubeSearchEvent.CHANGE_VIDEO_READY); eventObj.videoId = theOneVideoId; dispatchEvent(event); //2 dispatchEvent(n
//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;
}
}
}
这个问题来自我的另一篇文章
在内部,它们没有什么不同。运行时可能会对代码进行一些优化,但我对此表示怀疑 最大的区别是第一个比第二个更可读。另外,我认为您的意思是在第一个中设置
videoResult
,而不是videoId
,因为类中没有
编辑:
实际上,在第一个引用中创建excplicit对象引用有一个细微的区别,这取决于代码所在的位置,可能会或可能不会挂起一段时间,从而消耗内存。这是Flash虽然我不会太担心,但是你已经使用了相当多的内存,我不认为一个事件对象引用会导致问题。此外,当运行时发现它没有被使用时,它会被垃圾收集