我是Flash的新手。我知道它已经过时了,但我正在研究的项目是用Flash编写的。
我目前的任务是从.jpg文件中的任何像素获取RGB数据。到目前为止,我已经做了以下事情:
我已将图像保存为.fla文件,并将图像本身转换为自己的自定义类,名为" StageWheel",以BitmapData作为基类。但是,当我这样做时:
var sWheel:StageWheel = new StageWheel();
addChild(sWheel);
sWheel.addEventListener(MouseEvent.CLICK, getColorSample);
var bitmapWheel:BitmapData = new BitmapData(sWheel.width, sWheel.height);
我收到错误:
"将StageWheel类型的值隐式强制转换为不相关的类型flash.display.DisplayObject"
在
行addChild(sWheel);
这个错误是什么意思?我可以不使用addChild以这种方式向舞台添加内容吗?
修改
这对@LDMS有用,谢谢。我现在正试图在以后这样做:
var rgb:uint = bitMapWheel.getPixel(sWheel.mouseX,sWheel.mouseY);
并收到错误
" 1061:通过静态类型flash.display:Bitmap的引用调用可能未定义的方法getPixel。"
这是什么意思?我可以不在位图上使用getPixel吗?对于新手感到抱歉,由于某种原因,我很难学习Flash。
答案 0 :(得分:1)
你的StageWheel
类是BitmapData,它本身不是可以添加到舞台的显示对象。
您需要将位图数据包装到Bitmap
中,以使其成为显示对象。
var sWheel:BitmapData = new StageWheel(); //This is bitmap data, which is not a display object, just data at this point.
//to display the bitmap data, you need to create a bitmap and tell that bitmap to use the bitmap data
var bitmapWheel:Bitmap = new Bitmap(sWheel);
//now you can add the bitmap to the display list
addChild(bitmapWheel);
修改强>
对于问题的第二部分,您需要访问位图的位图数据以使用getPixel
bitmapWheel.bitmapData.getPixel(bitmapWheel.mouseX,bitmapWheel.mouseY);