【问题标题】:How to beginBitmapFill without repeats?(AS3)如何在没有重复的情况下开始位图填充?(AS3)
【发布时间】:2012-08-07 06:14:36
【问题描述】:

我的代码:

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;


        }

我需要用图像填充圆圈,但是图像重复了很多次,但是如果我将repeat设置为false,图片会更大,我可以不重复,同时不要改变填充图像的大小?

【问题讨论】:

    标签: actionscript-3 flash actionscript


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      请仔细查看BitmapData类文档的draw()方法。这很重要。

      并参考以下代码。

      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;
      }
      

      【讨论】:

        猜你喜欢
        • 2022-11-22
        • 2013-01-05
        • 2015-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多