Actionscript 3 如何将一个大图像切割成多部电影(FLASH)

Actionscript 3 如何将一个大图像切割成多部电影(FLASH),actionscript-3,flash,actionscript,Actionscript 3,Flash,Actionscript,所以我创建了很多矩形,每个循环移动20像素,所以现在它们都被颜色填充了,但是如果我有一个大图像,高度等于这些矩形,然后剪切图像,用图像的一部分填充每个矩形,就像制作拼图部分一样,我已经将图像导入我的库,但是现在我不知道怎么做了,有什么想法吗?简言之:如果要分割图像,请使用位图作为您的Rect子对象或基对象,并使用底层的BitmapData.copyPixels()方法用一幅大图像中的像素填充您的Rect位图。例如: package { import flash.display.Spri

所以我创建了很多矩形,每个循环移动20像素,所以现在它们都被颜色填充了,但是如果我有一个大图像,高度等于这些矩形,然后剪切图像,用图像的一部分填充每个矩形,就像制作拼图部分一样,我已经将图像导入我的库,但是现在我不知道怎么做了,有什么想法吗?

简言之:如果要分割图像,请使用位图作为您的Rect子对象或基对象,并使用底层的
BitmapData.copyPixels()
方法用一幅大图像中的像素填充您的Rect位图。例如:

package  {
    import flash.display.Sprite;

    public class Rect extends Sprite {

        private var color:uint,
        _width:Number,
        _height:Number;
        public function Rect(color:uint = 0x000000, width:Number = 20, height:Number = 80) {

            this.color = color;
            this._width = width;
            this._height = height;
            init();
        }

        function init():void
        {
            graphics.beginFill(color);

            graphics.drawRect(0, 0, _width, _height);

            graphics.endFill();


        }

    }

}
var megabase:BitmapData=new BigImage().BitmapData;//BigImage是一个嵌入式资产名称
_序列=新向量。();
_rect=新矩形(0,0,64,64);//我的图片部分是64x64所有,通常你应该在某处声明(x,y,w,h)
_点=新点();
var smallBD:BitmapData;
_序列=新向量。();
对于(i=0;i

这会将一个巨大的
megabase
图像拆分为几个64x64图像,这些图像作为位图数据对象的向量排列。显然,您的底层结构不同,但主要原理在这里有说明。

简而言之:如果要分割图像,请使用位图作为您的Rect子对象或基础,并使用底层的
BitmapData.copyPixels()
方法用一幅大图像中的像素填充您的Rect位图。例如:

package  {
    import flash.display.Sprite;

    public class Rect extends Sprite {

        private var color:uint,
        _width:Number,
        _height:Number;
        public function Rect(color:uint = 0x000000, width:Number = 20, height:Number = 80) {

            this.color = color;
            this._width = width;
            this._height = height;
            init();
        }

        function init():void
        {
            graphics.beginFill(color);

            graphics.drawRect(0, 0, _width, _height);

            graphics.endFill();


        }

    }

}
var megabase:BitmapData=new BigImage().BitmapData;//BigImage是一个嵌入式资产名称
_序列=新向量。();
_rect=新矩形(0,0,64,64);//我的图片部分是64x64所有,通常你应该在某处声明(x,y,w,h)
_点=新点();
var smallBD:BitmapData;
_序列=新向量。();
对于(i=0;i
这会将一个巨大的
megabase
图像拆分为几个64x64图像,这些图像作为位图数据对象的向量排列。很明显,您将有一个不同的底层结构,但这里说明了主要原则

        var megabase:BitmapData = new BigImage().bitmapData; // BigImage is an embedded asset name
        _sequence = new Vector.<BitmapData>();
        _rect = new Rectangle(0, 0, 64, 64); // my parts of image are 64x64 all, in general you should have (x,y,w,h) declared somewhere
        _point = new Point();
        var smallBD:BitmapData;
        _sequence = new Vector.<BitmapData>();
        for (i = 0; i < ssa.length; i++) {
            // ssa is a (x,y) array defining areas that each sprite will contain
            smallBD = new BitmapData(64, 64, true, 0);
            _rect.x = ssa[i][0];
            _rect.y = ssa[i][1]; 
            smallBD.copyPixels(megabase, _rect, _point);
            _sequence.push(smallBD);
        }