スクラッチカード

scratch



こすった部分に画像があらわれていくアクションの作り方です
解説はつづきから






新規ファイル作成
ステージ設定はサイズを400×300、フレームレートは30に






ライブラリに画像を読み込んでリンケージを選択
ActionScriptに書き出しにチェックを入れて、クラス名をMyPhotoに






ボタンとなるオブジェクトを作成し、ボタンシンボルに変換
インスタンス名をresetBtに




新規レイヤーを追加し、ActionScriptを記述

//ライブラリにあるMyPhotoのビットマップデータを作成
var myPhoto:BitmapData = new MyPhoto(0,0);
//灰色の矩形のビットマップデータを作成
var bmd:BitmapData = new BitmapData(240,180,false,0xFF999999);
//ビットマップを作成し、灰色の矩形を関連付け
var bm:Bitmap = new Bitmap(bmd);

//空のスプライト作成
var base:Sprite = new Sprite();
base.x = 80;
base.y = 80;

base.addChild(bm);
addChild(base);

//マウスダウンしてるときにマウスムーブイベント追加
base.addEventListener(MouseEvent.MOUSE_DOWN, onDown);
function onDown(e:Event):void {
    base.addEventListener(MouseEvent.MOUSE_MOVE, onMove);
}

//マウスアップやロールアウトしたときにマウスムーブイベント削除
base.addEventListener(MouseEvent.MOUSE_UP, onUp);
base.addEventListener(MouseEvent.ROLL_OUT, onUp);
function onUp(e:Event):void {
    base.removeEventListener(MouseEvent.MOUSE_MOVE, onMove);
}

function onMove(e:MouseEvent):void {
    //色情報を収める変数
    var color:uint;
    //マウス位置取得
    var curX = e.localX;
    var curY = e.localY;
    //色を取得する幅をランダムで変化
    var rndX:int = Math.random()*5+5;
    var rndY:int = Math.random()*5+5;

    for (var i:int = 0; i<rndX; i++) {
        for (var j:int = 0; j<rndY; j++) {
            //myPhotoからマウス位置周辺の色を取得
            color = myPhoto.getPixel(curX+i-rndX/2,curY+j-rndY/2);
            //bmdに取得した色を描画
            bmd.setPixel(curX+i-rndX/2,curY+j-rndY/2,color);
        }
    }
}

//リセットボタンを押したらbmdを灰色で塗りつぶす
resetBt.addEventListener(MouseEvent.CLICK, onClick);
function onClick(e:Event):void {
    bmd.fillRect(bmd.rect,0xFF999999);
}


これでムービープレビューすると以下のようになってるかと思います







以上、スクラッチカードの作り方でした