1
我遇到了一個奇怪的行爲,將一個精靈繪製成一個BitmapData。直接畫到屏幕上時,這個精靈看起來很好。但是,當這個精靈被繪製成一個BitmapData時,這個精靈正在被屏蔽...... ,但是沒有這樣的精靈應用於該精靈!用一個奇怪的面具將精靈畫成bitmapdata
這個「壞面具」可以通過對我正在繪製的精靈應用/不應用不同的面具來打開和關閉...。該面罩與「不良面罩」的形狀或位置不同。
alt text http://img5.imageshack.us/img5/8310/masked.png
我想知道如果我我做錯了什麼,或者這是一個錯誤?我以described in the documentation的方式添加了蒙版。 「壞面具」似乎從我繪製的精靈(drawingSprite)相對於其父母的位置獲得它的座標。
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import mx.core.UIComponent;
public class tmpa extends UIComponent
{
public function tmpa():void
{ var topSprite:Sprite = new Sprite();
topSprite.x = 0;
topSprite.y = 0;
addChild(topSprite);
var canvasSprite:Sprite = new Sprite();
canvasSprite.x = 5;
canvasSprite.y = 35;
topSprite.addChild(canvasSprite);
var drawingSprite:Sprite = new Sprite();
canvasSprite.addChild(drawingSprite);
var maskSp:Sprite = new Sprite();
maskSp.graphics.beginFill(0xFFFFFF, 1);
maskSp.graphics.drawRect(0, 0, 200, 200);
maskSp.graphics.endFill();
//toggle these two lines of code
canvasSprite.addChild(maskSp);
drawingSprite.mask = maskSp;
drawingSprite.graphics.beginFill(0xFF0000, 1);
drawingSprite.graphics.drawRect(0, 0, 200, 200);
drawingSprite.graphics.endFill();
drawingSprite.graphics.beginFill(0x00FF00, 1);
drawingSprite.graphics.drawCircle(0, 0, 100);
drawingSprite.graphics.endFill();
//a snapshot with default blue background
var bmd:BitmapData = new BitmapData(100, 100, false, 0x0000FF);
bmd.draw(drawingSprite);
var bm:Bitmap = new Bitmap(bmd);
bm.x = 300;
bm.y = 35;
addChild(bm);
}
}
}
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:a="*" width="100%" height="100%">
<a:tmpa id="t" width="100%" height="100%" x="0" y="0" left="0" top="0"/>
</mx:Application>
Thx!我在api中的掩碼示例之後對我的代碼進行了建模,這在我的示例中進行修改時似乎有點小問題。 – jedierikb 2009-04-15 00:37:03