代码之家  ›  专栏  ›  技术社区  ›  adam

Flex-收到标准事件后发送自定义事件

  •  0
  • adam  · 技术社区  · 16 年前

    for (i=0;i < event.currentTarget.fileList.length; i ++){
     fileByteData = new ByteArray();
     fileByteData = (event.currentTarget.fileList[i].data as ByteArray);                
     loader = new Loader();
     loader.contentLoaderInfo.addEventListener(Event.COMPLETE, checkImageDimensions);
     loader.loadBytes(fileByteData);                    
    }
    

    var myEvent:CustomEvent = new CustomEvent(i);
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, this.dispatchEvent(CustomEvent))
    

    1 回复  |  直到 16 年前
        1
  •  2
  •   David Hanak    16 年前

    dispatchEvent

    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event):void {
        dispatchEvent(new CustomEvent(i));
    });
    

    请注意,如果事件中只需要一个类型字符串,则不一定需要自定义事件类。在这种情况下,您可以简单地使用event类:

    public static const MY_CUSTOM_EVENT:String = "myCustomEvent";    
    ...
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event):void {
        dispatchEvent(new Event(MY_CUSTOM_EVENT));
    });
    

    编辑 :如果你真的很懒,但仍然想通过事件传递值,你可以使用 DinamicEvent

    var evt:DynamicEvent = new DynamicEvent(MY_CUSTOM_EVENT);
    evt.attr1 = val1;
    evt.attr2 = val2;
    dispatchEvent(evt);
    

    当然,声明自己的错误类更干净,更不容易出错。

    推荐文章