我想比较位图1和位图2,如果它们等于0,我希望它们做一些事情。所以为了看到它返回什么,我添加了一个跟踪。但它似乎正在寻找与我预期完全不同的东西。这是代码:比较位图不起作用
var scratch_c : Scratch_card = new Scratch_card();
var backgr: Background = new Background();
var mouseclick:Number;
var masking:Sprite = new Sprite()
var bmd1:BitmapData = new BitmapData(742, 165);
var bm:Bitmap = new Bitmap(bmd1);
addChild (bm);
bm.x=20;
bm.y=40;
bmd1.draw(scratch_c);
var bmd2:BitmapData = new BitmapData(742, 165);
var bm2:Bitmap = new Bitmap(bmd2);
addChild (bm2);
bm2.x=20;
bm2.y=40;
bmd2.draw(backgr);
bm2.mask = masking;
addChild(masking);
stage.addEventListener(MouseEvent.MOUSE_DOWN, Pressing);
stage.addEventListener(MouseEvent.MOUSE_MOVE, Moving);
stage.addEventListener(MouseEvent.MOUSE_UP, Lifting);
function Pressing(event:MouseEvent):void {
mouseclick = 1;
}
function Moving(event:MouseEvent):void {
if (mouseclick == 1) {
masking.graphics.beginFill(0x000000);
masking.graphics.drawEllipse(mouseX, mouseY, 70, 60);
masking.graphics.endFill();
}
}
function Lifting(event:MouseEvent):void {
trace(bmd1.compare(bmd2));
mouseclick = 0;
}
这是它被描绘出
我怎样才能使它比较BMD 1和BMD2的像素? 为什么它不返回一个数字?
我怎么可以将其指定为别的东西的图像?我有点困惑,它被蒙上了脸,并没有完全解除,为什么它仍然回来? – tailedmouse 2013-02-18 18:50:33
首先你在第二个'bmd2.draw(backgr);'上做'bmd1.draw(scratch_c);''。在我看来,这是你的BitmapData差异的原因。希望我帮助你。 – vikingmaster 2013-02-18 19:05:30
hummm只是为了测试的目的,我再次添加了同一张图片的副本,而没有将其添加到舞台上。以及它确实返回0 ..现在我的问题变成...我只能知道整个图像已被揭露或辱骂后,我怎么能比较它们..我只想比较蒙版图像的部分与整体如果它返回0我希望它做的事 – tailedmouse 2013-02-18 19:14:34