質問ページ2 / 26


質問ページ2 / 26

質問ページ2/26

概要ラスターエフェクトについて
投稿者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();
   		   }
	};
}

回答

  • 表示がバグっててよく判らないが、クリップアクションの中にフレームアクションを書いてるような気がす -- 2007-08-21 (火) 08:59:51
  • とりあえず、質問のAS部分の表示を直しました -- 2007-09-01 (土) 09:35:04
  • つか、フレームアクションのスクリプトなのになんでonClipEvent?(enterFrame)とかつけてるの? 元の画像にエフェクトがかからないのは仕様。ヒント:元の画像の位置やサイズを変えてごらん -- 2007-09-01 (土) 11:08:47