0

我的代码:

myCircle = 新形状();

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

我不太确定位图填充方法,但创建自己的位图和位图数据,然后使用图像的位图数据,您可以随意操作图像像素/数据。

- 使用 bitmapData 类的 setPixel/setPixel32 方法将对您的任务有所帮助(谷歌是您的朋友)

Adobe 的帮助: http: //livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/BitmapData.html

于 2012-08-07T06:49:29.543 回答
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 回答