0

私のコード:

myCircle = new Shape();

function doStuffWithBitmapData(bmd:BitmapData):void
        {

            myCircle = new Shape();
            var matrix:Matrix = new Matrix();
            matrix.translate(0, 0);
            myCircle.graphics.beginBitmapFill(bmd, matrix, false);
            myCircle.graphics.drawCircle(0, 0, 17);
            myCircle.graphics.endFill();
            myCircle.x = 40;
            myCircle.y = 63;

            addChild(myCircle);

            // your code

            addEventListener(Event.ENTER_FRAME, onEnterFrame);
        }

        private function onEnterFrame(e:Event)
        {
            myCircle.rotation += 3;


        }

円を画像で塗りつぶす必要がありますが、画像は何度も繰り返されますが、繰り返しをfalseに設定すると、画像が大きくなります。繰り返しを行わないと同時に、サイズを変更しないでください。塗りつぶされた画像?

4

2 に答える 2

0

draw()BitmapData Class Documentsのメソッドをよく見てください。それは非常に重要です。

次のコードを参照してください。

import flash.display.BitmapData;
import flash.display.Shape;
import flash.display.Bitmap;

var myCircle:Shape;

var bmd:BitmapData = new BitmapData(600,400,false,0xffffff);
var bmp:Bitmap = new Bitmap(bmd);
this.addChild(bmp);

var circleBitmapData:BitmapData = new BitmapData(20,20,false,0xffffff * Math.random());

myCircle = new Shape();
var matrix:Matrix = new Matrix();
myCircle.graphics.beginBitmapFill(circleBitmapData);
myCircle.graphics.drawCircle(0, 0, 20);
myCircle.graphics.endFill();
myCircle.x = 40;
myCircle.y = 63;

addEventListener(Event.ENTER_FRAME, onEnterFrame);

function onEnterFrame(e:Event)
{
    bmd.draw(myCircle, myCircle.transform.matrix, myCircle.transform.colorTransform);
    myCircle.x = Math.random() * stage.width;
    myCircle.y = Math.random() * stage.height;
}
于 2012-08-07T08:16:35.460 に答える
0

bitmapfill メソッドについてはよくわかりませんが、独自のビットマップと bitmapData を作成し、画像の bitmapdata を使用して、画像のピクセル/データを好きなように操作できます。

- bitmapData クラスの setPixel/setPixel32 メソッドを使用すると、作業に役立ちます (Google はあなたの友達です)。

Adobe のヘルプ: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/BitmapData.html

于 2012-08-07T06:49:29.543 に答える