【发布时间】:2010-03-18 20:35:40
【问题描述】:
问题:下面的代码闪退... 为什么?
导致崩溃的线条似乎是
//var uiColor:uint = bmpd.getPixel(i,j);
var uiColor:uint = bmpd.getPixel32(i,j);
trace("颜色:"+ uiColor);
我正在尝试拍摄影片剪辑的快照并遍历图像中的所有像素并获取像素的颜色。
import flash.display.BitmapData;
import flash.geom.*;
function takeSnapshot(mc:MovieClip):BitmapData
{
var sp:BitmapData = new BitmapData(mc.width, mc.height, true, 0x000000);
sp.draw(mc, new Matrix(), new ColorTransform(), "normal");
return sp;
}
var mcMyClip:MovieClip=new MovieClip()
var xxx:cMovieClipLoader=new cMovieClipLoader();
xxx.LoadImageAbsSize(mcMyClip,"http://localhost/flash/images/picture.gif", 500,500)
//this.addChild(mcMyClip);
function WhenImageIsLoaded()
{
var bmpd:BitmapData=takeSnapshot(mcMyClip);
var i,j:uint;
for(i=0; i < bmpd.width;++i)
{
for(j=0; j < bmpd.height;++j)
{
//var uiColor:uint = bmpd.getPixel(i,j);
var uiColor:uint = bmpd.getPixel32(i,j);
trace("Color: "+ uiColor);
}
}
var myBitmap:Bitmap = new Bitmap(bmpd);
this.addChild(myBitmap);
}
setTimeout(WhenImageIsLoaded,1000);
【问题讨论】:
-
你说的“崩溃闪现”到底是什么意思?
-
刚刚在 fla 中运行代码,对我来说一切正常。我在 Mac 上运行 CS4。看起来这更像是 Flash IDE/环境问题而不是代码问题。
-
是的,您的意思是 Vista x64 问题。我已经放弃提交错误报告,我还需要做其他事情 ;-))
-
你能发布堆栈跟踪吗?您可以在启用调试的情况下发布它吗?这将准确地告诉您错误发生在哪一行。
标签: flash actionscript-3 actionscript