トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     「クリックすると波紋が広がるスクリプト」を改造したい
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
T-mortar
Åê¹ÆNo.41257
投稿日時: 2009-1-17 20:36
新米
居住地: 東京都
投稿: 11
使用環境:
「クリックすると波紋が広がるスクリプト」を改造したい
他人から貰ったスクリプトなのですが……。
以下のスクリプトは、「ライブラリに識別子"surface"を書き出した256*256サイズのビットマップ」をクリックすると波紋が広がるスクリプトです。(フレームアクションにこれを置くとできます。ただしFlash8以上必須です)
このスクリプトを
・ビットマップ無しで動く
・一番上のレイヤーのフレームに置くことで、それ以下のレイヤーのモノ(Flashで描いたベクターデータでも読み込んだビットマップデータでも)に波紋が出るようにしたい
のですが、どのようにすればいいのでしょう?
ASに関してはほぼ初心者同然なので、さっぱりです。よろしければご教授願います。


import flash.display.*;
import flash.filters.*;
import flash.geom.*;

var damper: BitmapData = new BitmapData( 128, 128, false, 0x80 );
var result: BitmapData = new BitmapData( 128, 128, false, 0x80 );
var result2: BitmapData = new BitmapData( 256, 256, false, 0x80 );
var source: BitmapData = new BitmapData( 128, 128, false, 0x80 );
var buffer: BitmapData = new BitmapData( 128, 128, false, 0x80 );
var output: BitmapData = new BitmapData( 256, 256, true, 0x80 );
var surface: BitmapData = BitmapData.loadBitmap( 'surface' );

var bounds: Rectangle = new Rectangle( 0, 0, 128, 128 );
var origin: Point = new Point();
var matrix: Matrix = new Matrix();
var matrix2: Matrix = new Matrix();
matrix2.a = matrix2.d = 2;

var wave: ConvolutionFilter = new ConvolutionFilter( 3, 3, [ 1, 1, 1, 1, 1, 1, 1, 1, 1 ], 9, 0 );
var damp: ColorTransform = new ColorTransform( 0, 0, .99609374, 1, 0, 0, 2, 0 );
var water: DisplacementMapFilter = new DisplacementMapFilter( result2, origin, 4, 4, 48, 48, 'ignore' );

attachBitmap( output, 0 );

var ms: Number = getTimer();
var frame: Number = 0;

var mouseDown: Boolean = false;

onMouseDown = function()
{
mouseDown = true;
}

onMouseUp = function()
{
onEnterFrame();
mouseDown = false;
}

onEnterFrame = function()
{
if( mouseDown )
{
var mx: Number = _xmouse / 2;
var my: Number = _ymouse / 2;

source.setPixel( mx + 1, my, 0xffffff );
source.setPixel( mx - 1, my, 0xffffff );
source.setPixel( mx, my + 1, 0xffffff );
source.setPixel( mx, my - 1, 0xffffff );
source.setPixel( mx, my, 0xffffff );
}

result.applyFilter( source, bounds, origin, wave );
result.draw( result, matrix, null, 'add' );
result.draw( buffer, matrix, null, 'difference' );
result.draw( result, matrix, damp );

result2.draw( result, matrix2, null, null, null, true );

output.applyFilter( surface, new Rectangle( 0, 0, 256, 256 ), origin, water );

buffer = source;
source = result.clone();
}


----------------
9999.99GHz
http://www.geocities.jp/hakugeki9999/
Home,

フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » 「クリックすると波紋が広がるスクリプト」を改造したい T-mortar 2009-1-17 20:36
     Re: 「クリックすると波紋が広がるスクリプト」を改造したい nabe_1234 2009-1-31 8:18

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops