Actionscript 3 Actionscript—当图像源已更改并完成加载时通知的事件

Actionscript 3 Actionscript—当图像源已更改并完成加载时通知的事件,actionscript-3,events,flex4,Actionscript 3,Events,Flex4,我正在寻找一个事件,该事件在图像的源属性已更改且图像显示对象已加载新数据后触发。我认为“完成”事件是一个不错的选择,但它似乎会在源代码更改后立即启动,但在图像加载完成之前。在下面的代码片段中,我试图在imgMap被doExport的字节更新后触发imgMap_completeHandler public function doExport(bytes:ByteArray):void { FlexGlobals.topLevelApplication.addElement(this);

我正在寻找一个事件,该事件在图像的源属性已更改且图像显示对象已加载新数据后触发。我认为“完成”事件是一个不错的选择,但它似乎会在源代码更改后立即启动,但在图像加载完成之前。在下面的代码片段中,我试图在imgMap被doExport的字节更新后触发imgMap_completeHandler

public function doExport(bytes:ByteArray):void
{
    FlexGlobals.topLevelApplication.addElement(this);
    imgMap.source = bytes;
}

protected function imgMap_completeHandler(event:Event):void
{
    var pngEncoder:PNGEncoder = new PNGEncoder();
    var snapShot:ImageSnapshot = ImageSnapshot.captureImage(this,0,pngEncoder);
    export = snapShot.data;
    dispatchEvent(new Event("exportComplete"));
}

<s:Image id="imgMap" complete="imgMap_completeHandler(event)"  width="100%" height="100%"/>

您是否尝试过扩展Image类和source方法来实现这一点

您可能只需要在事件结束后创建一个标准事件

public function source(....)
{
    [super source...]
    dispatchEvent(new Event('Loaded'));
}

希望有帮助

您是否尝试过扩展Image类和source方法来实现这一点

您可能只需要在事件结束后创建一个标准事件

public function source(....)
{
    [super source...]
    dispatchEvent(new Event('Loaded'));
}

希望有帮助

您是否有名为exportCompletePerhaps INIT的事件/函数可以工作。我不熟悉图像组件,但在许多其他Flash组件中,INIT是在数据更改后触发的事件,并且是可用的。令人费解。从文件上看,这听上去肯定行得通。另一个要尝试的是ready事件,但是从查看BitmapImage.as很多Image.as只是其中的一个包装器来看,似乎在完成之前启动了ready。是否尝试了updateComplete的事件处理程序?是否有名为exportCompletePerhaps INIT的事件/函数可以工作。我不熟悉图像组件,但在许多其他Flash组件中,INIT是在数据更改后触发的事件,并且是可用的。令人费解。从文件上看,这听上去肯定行得通。另一个要尝试的是ready事件,但是从查看BitmapImage.as的大量图像来看。由于它只是一个包装,似乎在完成之前启动了ready。您是否尝试过updateComplete的事件处理程序?