2010-08-09 3 views
0

Je me demandais la différence entre ces deux méthode dispatchEvent ...AS3 Les façons de dispatchEvent

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

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

Selon mon événement personnalisé, je dois avoir deux arguments ... mais me demandais si la première méthode est différente de la seconde ...

mon événement personnalisé:

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; 

     } 
    } 
} 

la question est de mon autre poste AS3 Pass Custom Event Data Question

Répondre

1

En interne, ils ne sont pas différents. L'exécution peut faire une certaine optimisation au code mais j'en doute.

La plus grande différence est que le premier est un peu plus lisible que le second. Aussi je pense que vous voulez dire mettre le videoResult dans le premier pas le videoId puisqu'il n'y a pas un dans la classe.

EDIT: En fait, il est la légère différence que vous créez une référence d'objet excplicit dans le premier qui, selon l'endroit où le code est peut ou non traîner pendant un certain temps ainsi la mémoire. Ceci étant Flash bien que je ne serais pas trop préoccupé par cela, vous utilisez déjà un peu de mémoire, je ne pense pas qu'une référence d'objet d'événement causera un problème. De plus, les déchets seront collectés lorsque le moteur d'exécution verra qu'il n'est pas utilisé.

+0

ic ... merci pour la réponse ... – FlyingCat