Apache flex Adobe Flex:Event.COMPLETE for Image在从位图加载图像时不会触发
我有个奇怪的问题。当我设置时,我可以让Event.COMPLETE启动Apache flex Adobe Flex:Event.COMPLETE for Image在从位图加载图像时不会触发,apache-flex,flex3,flex4,Apache Flex,Flex3,Flex4,我有个奇怪的问题。当我设置时,我可以让Event.COMPLETE启动 image.source = byteArray; 但是 当我操作byteArray-将其转换为位图并使用image.source或image.load加载它时,位图会正确加载到image组件中;但事件。完成永远不会开火。这里可能出了什么问题?我也为complete添加了一个事件列表器!我的资料来源如下: var bmp:Bitmap = scaleBitmapData(bitmapData
image.source = byteArray;
但是
当我操作byteArray-将其转换为位图并使用image.source或image.load加载它时,位图会正确加载到image组件中;但事件。完成永远不会开火。这里可能出了什么问题?我也为complete添加了一个事件列表器!我的资料来源如下:
var bmp:Bitmap = scaleBitmapData(bitmapData,280,220);
imgPreview.addEventListener(Event.COMPLETE,onPreviewImageCompleted); // never fires
imgPreview.visible = false;
imgPreview.load(bmp); // does not work with .source either; image is displayed but Event.Complete never fires!
谢谢
Subrat所以这里使用的类是SWFLoader(图像扩展了SWFLoader)。如果传入ByteArray或url,则会添加相应的侦听器。你所做的是给它一个位图,它是一个显示对象。下面是将位图加载到图像中的重要代码:
else if (classOrString is DisplayObject)
{
contentHolder = child = DisplayObject(classOrString);
addChild(child);
contentLoaded();
}
拜特里:
else if (byteArray)
{
loader = new FlexLoader();
contentHolder = child = loader;
addChild(child);
loader.contentLoaderInfo.addEventListener(
Event.COMPLETE, contentLoaderInfo_completeEventHandler);
loader.contentLoaderInfo.addEventListener(
Event.INIT, contentLoaderInfo_initEventHandler);
loader.contentLoaderInfo.addEventListener(
IOErrorEvent.IO_ERROR, contentLoaderInfo_ioErrorEventHandler);
loader.contentLoaderInfo.addEventListener(
Event.UNLOAD, contentLoaderInfo_unloadEventHandler);
// if loaderContext null, it will use default, which is AppDomain
// of child of Loader's context
loader.loadBytes(byteArray, loaderContext);
}
网址:
else if (url)
{
// Create an instance of the Flash Player Loader class to do all the work
loader = new FlexLoader();
contentHolder = child = loader;
// addChild needs to be called before load()
addChild(loader);
// Forward the events from the Flash Loader to anyone
// who has registered as an event listener on this Loader.
loader.contentLoaderInfo.addEventListener(
Event.COMPLETE, contentLoaderInfo_completeEventHandler);
loader.contentLoaderInfo.addEventListener(
HTTPStatusEvent.HTTP_STATUS, contentLoaderInfo_httpStatusEventHandler);
loader.contentLoaderInfo.addEventListener(
Event.INIT, contentLoaderInfo_initEventHandler);
loader.contentLoaderInfo.addEventListener(
IOErrorEvent.IO_ERROR, contentLoaderInfo_ioErrorEventHandler);
loader.contentLoaderInfo.addEventListener(
Event.OPEN, contentLoaderInfo_openEventHandler);
loader.contentLoaderInfo.addEventListener(
ProgressEvent.PROGRESS, contentLoaderInfo_progressEventHandler);
loader.contentLoaderInfo.addEventListener(
SecurityErrorEvent.SECURITY_ERROR, contentLoaderInfo_securityErrorEventHandler);
loader.contentLoaderInfo.addEventListener(
Event.UNLOAD, contentLoaderInfo_unloadEventHandler);
...[this goes on for awhile]
所以你在这里得到了要点。不要将其转换为位图,您将获得完整的事件。您还可以将添加到位图中的舞台。谢谢您的回答Joel。我正在使用FileReference.load从FileReference.data ByteArray加载图像,因此我别无选择,只能使用ByteArray。然而,我听了位图上的添加到舞台上的事件,它就像一个魅力!谢谢您可以将bitmapdata与image.load一起使用,它将触发完整事件。将其转换为位图就是将其作为子对象添加。Subrat Basnet!您完全正确的回答是“我在位图上收听了添加的舞台事件”。当您需要使用位图而不是ByteArray时。