Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 Flash Player 11 vs.10 ByteArray错误#2030与PixelBender_Actionscript 3_Flash_Bytearray_Pixel Bender_Flash Player 11 - Fatal编程技术网

Actionscript 3 Flash Player 11 vs.10 ByteArray错误#2030与PixelBender

Actionscript 3 Flash Player 11 vs.10 ByteArray错误#2030与PixelBender,actionscript-3,flash,bytearray,pixel-bender,flash-player-11,Actionscript 3,Flash,Bytearray,Pixel Bender,Flash Player 11,我正在尝试通过PixelBender部分使用3d投影,这本身就很好,即使没有炼金术像素绘图。问题是在Flash Player 11+中查看时,它不起作用。当从Flash CS4或CS5(而不是CS5.5)发布时,主权财富基金预览效果良好。当SWF在本地打开时,我们的设置似乎使用FP10调试播放器,这非常有效,但是如果将相同的SWF拖到安装了最新Flash player(11+)的浏览器(chrome/FF)中,它会在ByteArray.readFloat()上引发以下错误: …在ByteArra

我正在尝试通过PixelBender部分使用3d投影,这本身就很好,即使没有炼金术像素绘图。问题是在Flash Player 11+中查看时,它不起作用。当从Flash CS4或CS5(而不是CS5.5)发布时,主权财富基金预览效果良好。当SWF在本地打开时,我们的设置似乎使用FP10调试播放器,这非常有效,但是如果将相同的SWF拖到安装了最新Flash player(11+)的浏览器(chrome/FF)中,它会在ByteArray.readFloat()上引发以下错误:

…在ByteArray.readFLoat()期间引发。。。第一次打电话。就在我完成了ByteArray.writeFloats循环之后,我知道ByteArray此时充满了数据。同样,这段代码在FP10上运行良好,但在FP11上失败。我已经尝试捕获错误,它会像您所期望的那样跟踪错误,但我仍然在研究如何使这个ByteArray代码在Flash Player 11中工作

我已经尽我所能在谷歌上搜索了这篇文章,找到了很多关于#2030错误和ByteArray的参考资料,但似乎没有一篇能如此清晰地区分FP10和FP11。

有什么想法吗?ByteArray的write()或read()函数是否存在问题,而这些函数只存在于FP11中?有解决办法吗

谢谢


-案例

我找到了答案,尽管我不完全理解问题所在。Flash player 11似乎要求在运行ShaderJob后立即将PixelBender输出ByteArray上的位置重置为0

var job:ShaderJob = new ShaderJob(shader, MyByteArray, 1024, 1);
job.start(true);
MyByteArray.position = 0
FP10不需要这个-我猜它是在ShaderJob之后自动重置位置的?这一定是因为在2个flash播放器版本中,PixelBender的实现有细微的不同

var job:ShaderJob = new ShaderJob(shader, MyByteArray, 1024, 1);
job.start(true);
MyByteArray.position = 0