スポンサーサイト

-------- | --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[ActionScript 3.0] copyPixels

2007-11-02 | 20:16

下の画像をマウスでなぞると、その部分が上の画像にコピーされます。
マウスクリックで元に戻ります。

package {
    import flash.display.*;
    import flash.events.*;
    import flash.net.*;
    import flash.text.*;
    import flash.utils.*;
    import flash.geom.*;
 
    [SWF(width="600", height="550", backgroundColor="#ffffff")]
    public class Main extends Sprite{

        [Embed(source="939-df651105.jpg")]
            private var pic1:Class;
        [Embed(source="445-enmusubi.jpg")]
            private var pic2:Class;
        [Embed(source="circle.png")]
            private var Mask:Class;

        public function Main():void
        {
            var original:Bitmap = new pic1();
            var bm1:Bitmap = new pic1();
            addChild(bm1);
            var bm2:Bitmap = new pic2();
            addChild(bm2);
            bm2.y = bm1.height;

            var mask:Bitmap = new Mask();

            mask.bitmapData.copyChannel(mask.bitmapData, mask.bitmapData.rect, new Point(0, 0), 1, 8);

            stage.addEventListener(MouseEvent.MOUSE_MOVE, function(e:MouseEvent):void{
                    var p:Point = new Point(stage.mouseX - mask.width/2, stage.mouseY - bm1.height - mask.height/2);
                    var rect:Rectangle = new Rectangle(p.x, p.y, mask.width, mask.height);	
                    bm1.bitmapData.copyPixels(bm2.bitmapData, rect, new Point(p.x ,p.y), mask.bitmapData, new Point(0, 0), true);
                    });

            stage.addEventListener(MouseEvent.MOUSE_UP, function(e:Event):void{
                    var rect:Rectangle = new Rectangle(0, 0, bm1.width, bm1.height);	
                    bm1.bitmapData.copyPixels(original.bitmapData, rect, new Point(0 ,0));
                    });
        }
    }
}


スポンサーサイト

Comment

Post a comment

Secret

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。