0

これら2つのdispatchEventメソッドの違いを疑問に思っていました...

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

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

私のカスタム イベントによると、2 つの引数が必要です...しかし、最初のメソッドが 2 番目のメソッドと異なるかどうか疑問に思っていました...

私のカスタムイベント:

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

内部的には違いはありません。ランタイムはコードに対して何らかの最適化を行う可能性がありますが、私はそれを疑っています。

その場合の最大の違いは、最初のものは 2 番目のものよりも少し読みやすいということです。videoResultまた、クラスにはないので、最初のものではなく最初のものに設定するつもりだと思いますvideoId

編集: 実際には、最初のオブジェクト参照で明示的なオブジェクト参照を作成しているというわずかな違いがあります。これは、コードがどこにあるかに応じて、しばらくの間ぶらぶらしている可能性があるため、メモリを消費します。これは Flash ですが、あまり気にする必要はありません。すでにかなりの量のメモリを使用しています。1 つのイベント オブジェクト参照が問題を引き起こすとは思いません。また、ランタイムが使用されていないことを確認すると、ガベージコレクションが行われます。

于 2010-08-09T19:16:56.607 に答える