gpt4 book ai didi

apache-flex - Flex-错误#2015 : Invalid BitmapData

转载 作者:行者123 更新时间:2023-12-03 07:50:39 25 4
gpt4 key购买 nike

我真的需要一些帮助,因为我不知道如何解决! :/

这里有问题。

我的应用程序在脱机和联机计算机上都可以正常运行(闪存上传到我们的网络服务器)。在IE和Firefox中都可以正常工作。

但是,某些用户在IE上运行时确实有问题,而Firefox仍然可以。

该应用程序本身可以工作,尝试将某些帧缓冲到BitmapData时出现错误。

因此,在Firefox中,效果很好。
在IE(在我的计算机上)中,效果很好。
在IE中(在其他计算机上),它不起作用,并且会引发此错误。它恰好在最后发生,这意味着一切正常,直到最后一次运行该功能。 (以这种方式运行以允许更新进度条。如果将for循环设置为180,那么它将全部冻结,直到完成。这就是为什么我执行10和10。)

任何有关此的帮助都将非常有用,因为我完全被困在这里...
我已经跟踪了位图数据的大小,并且在发生错误时它的分辨率为1920x1080。

这是失败的代码:

fpsoSWFBuffer = new BitmapData(fpsoMC.width, fpsoMC.height, false, 0x00ff0000);

这是代码所在的整个函数:
public function bufferFpsoImages(evt:TimerEvent):void{
for (var i:int = 0; i<10; i++){
fpsoMC.gotoAndStop(currentFpsoFrame);
fpsoSWFBuffer = new BitmapData(fpsoMC.width, fpsoMC.height, false, 0x00ff0000);
fpsoSWFBuffer.draw(fpsoMC);
fpsoImgArray[currentFpsoFrame] = fpsoSWFBuffer;

currentFpsoFrame++;
}

if (currentFpsoFrame <= (totImg360-10)){
// Still buffering frames //

myLoadingPanel.setBufferProg(currentFpsoFrame);
var fpsoTimer:Timer = new Timer(1,1);
fpsoTimer.addEventListener(TimerEvent.TIMER_COMPLETE, bufferFpsoImages);
fpsoTimer.start();

}else{
// All frames buffered //
currentFpsoFrame = 0;
fpsoLoaded = true;
fpsoLoading = false;

ncFPSO.removeElement(myLoadingPanel);
myLoadingPanel = null;


var fpsoBitmap:Bitmap = new Bitmap(fpsoImgArray[0]);
fpsoBitmap.smoothing = true;
fpsoImage.source = fpsoBitmap;

}
}

编辑:
现在,我已经向其中添加了一些调试功能,以便能够知道失败的地方。 (因为它在调试期间有效,所以我需要在线调试实时版本)。

这是我得到的:
ErrorID=2015
ErrorMessage=Error #2015
ErrorPos=fpsoSWFBuffer = new BitmapData(1920, 1080, false, 0x00ff0000);
CurrentFpsoFrame=168
Position in For Loop=8

EDIT2:这是我终于在Flash Builder中获得的错误消息。所以现在它也在这里崩溃.. =/
ArgumentError: Error #2015: Invalid BitmapData.
at flash.display::BitmapData/ctor()
at flash.display::BitmapData()
at Main/bufferTemplateImages()[E:\Workspace - Flash Builder\vCog Workspace\vCog Communicator 3.0\src\Main.mxml:461]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.utils::Timer/tick()

最佳答案

您正在缓冲1.5gb的内存? Flash会不断从OS请求内存,直到OS不再提供内存为止。如果它可以在您的计算机上运行,​​但不能在其他计算机上运行,​​则可能是他们的计算机正在运行许多其他程序请求内存,而无法为您的项目提供足够的内存。我要检查的另一件事是,他们仅使用32位窗口的哪个版本的操作系统最多可以看到2Gb的内存。虽然这仅仅是一个理论。也许先尝试压缩图像以限制内存使用量。

关于apache-flex - Flex-错误#2015 : Invalid BitmapData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16357893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com