概要 | ラスターエフェクトについて |
---|---|
投稿者 | Parafla Quality |
状態 | |
カテゴリー | ActionScript |
投稿日 | 2007-08-16 (木) 23:07:51 |
バージョン | 1.37 |
こちらのサイトにある「サインカーブで波打つビットマップ」を使いたいと思うのですが、スクリーンサイズを使いたい画像に合わせるとまったく変化がありません。 スクリーンサイズを画像より大きくすると、増やした幅の部分にも使用した画像が表れエフェクトがかかっていますが、元の画像にはエフェクトがかかりません。 いろいろ調べてプログラムをいじってみたのですが、手詰まりです。どこが問題なのでしょうか?
以下がプログラムです。
onClipEvent(load){ // 描画するターゲットパス RENDER_MOVIECLIP = _root; // スクリーンサイズ SCREEN_WIDTH = 680; SCREEN_HEIGHT = 480; // サインカーブパラメータ phase = 0; // 位相 speed = 5; // 波移動速度 amp = 30; // 振幅 cycle = 1; // 周期 // ビットマップデータ確保 bmpData = flash.display.BitmapData.loadBitmap ("a_back"); _root.attachBitmap(bmpData, 0); } - onClipEvent(enterFrame){ onEnterFrame = function(){ // クリーンアップ RENDER_MOVIECLIP.clear(); phase += speed; var i; var tmp = phase; var m = new flash.geom.Matrix(1,0,0,1,0,0); for(i=0;i < SCREEN_HEIGHT;i++){ tmp += cycle; // ビットマップデータから1行ずつずらして描画 m.tx = Math.sin(tmp * Math.PI / 180) * amp; RENDER_MOVIECLIP.beginBitmapFill(bmpData, m); RENDER_MOVIECLIP.moveTo(0, i); RENDER_MOVIECLIP.lineTo(0, i + 1); RENDER_MOVIECLIP.lineTo(SCREEN_WIDTH, i + 1); RENDER_MOVIECLIP.lineTo(SCREEN_WIDTH, i); RENDER_MOVIECLIP.endFill(); } }; }