Posts Tagged ‘ActionScript3.0’

AS3.0_ウェーブっぽいのの表現

This movie requires Flash Player 9



スライダーの数値を変えると変化します。
気持ちのいいとき動きのときがけっこうあって楽しい。


配列の中の要素のscaleYをsinを使って変化してウェーブっぽいのを作ってみた。
ソースは動かしてる配列の部分。
var _len:uint = 100
for (var i: int = 0; i < _len; i++) 
{
	_boxList[i].scaleY = 1.5 + Math.sin(_angle + i * _moveChagehsSlider.value);
	_angle += 0.001;
}

// _moveChagehsSlider.valueはスライダーの値





この前Processingの本をamazonで買ったらまさかの洋書で全部英語。。。

けっこうな値段したからかなりドンマイでした。

でもソースは元々英語だしね。

がんばります。








AS3.0_関数を抜けたりとかの手法

関数を抜けたりとかする方法のメモ
下記のサイトが参考になるんでそれで。というかそのまんまこれだ!

http://hp.vector.co.jp/authors/VA031061/biml/helpc/15break.htm



簡単にかくと、

break;
for文とかswitch、whileなどの中に書く。 その回の繰り返しをそこで終了して次の繰り返しに進む。


continue;
for文とかswitch、whileなどの中に書く。 繰り替えし自体の処理をそこで終わらせで次に進む。


return;
関数の中に書く。 そこで関数を抜ける。 関数に戻り値を加えられる。





AS3.0_配列から指定のオブジェクトを抜き出した配列を返す

配列から特定のオブジェクトを抜き出した配列を返す方法の勉強のメモ

今までなんとなくよく分かってなかったので、すっきり!
indexOf 使えばいけるらしい。


まずはvectorの配列を作る

private var _vector01:Vector.<int>;
_vector01 = Vector.<int>([ 0, 1, 2, 3, 4, 5 ]);
trace("_vector01 : " + _vector01);

 /**
 * トレース結果
 * _vector01 : 0,1,2,3,4,5
 */



削除した後用の新しい配列を作ってremoveVectorメソッドで指定したオブジェクトを抜き出した配列を返す
var _newVector:Vector.<int> = removeVector(_vector01[2]); //引数には削除したいオブジェクト
trace("_newVector : " + _newVector);

//removeVectorメソッド
private function removeVector(__num:int):Vector.<int>
{
	//indexOfを使う  ( 削除したいオブジェクト , 検索の開始番号)
	var remove:uint = _vector01.indexOf(__num, 0);
	
        //indexOfでは、引数が見つからなかった場合、戻り値は -1 らしいので
	if (remove != -1)  _vector01.splice(remove, 1);
	
	return _vector01;	
}

/**
 * トレース結果
 * _newVector : 0,1,3,4,5
 */




indexOf の引数には、
var remove:uint = _vector01.indexOf(_num, 0); 


indexOf( 削除したいオブジェクト , 検索を開始する配列番号 )
削除したいオブジェクトが見つからなかった場合、戻り値は -1 になるらしい。


関係ないけど、 lastIndexOf() は 検索を開始する配列番号から、後方に検索するらしい。






AS3.0_色分解の勉強

This movie requires Flash Player 9


仕事で使いたかったので勉強。
copyChannelを使ってあげたらいいみたいです。
//色を分解するには copyChannel を使ってあげるっぽいです。
//BitmapDataChannelで色を指定してあげてるみたいです。
var r:BitmapData = new BitmapData(__bmp.width, __bmp.height, true, 0xFF000000);
var g:BitmapData = new BitmapData(__bmp.width, __bmp.height, true, 0xFF000000);
var b:BitmapData = new BitmapData(__bmp.width, __bmp.height, true, 0xFF000000);

r.copyChannel(__bmp.bitmapData, new Rectangle(0, 0, __bmp.width, __bmp.height), new Point(), BitmapDataChannel.RED, BitmapDataChannel.RED);
g.copyChannel(__bmp.bitmapData, new Rectangle(0, 0, __bmp.width, __bmp.height), new Point(), BitmapDataChannel.GREEN, BitmapDataChannel.GREEN);
b.copyChannel(__bmp.bitmapData, new Rectangle(0, 0, __bmp.width, __bmp.height), new Point(), BitmapDataChannel.BLUE, BitmapDataChannel.BLUE);
//※r,g,bはBitmapData




あとは
var _bmp:Bitmap = Bitmap(addChild(new Bitmap(r)));


って感じでやってあげればおけい!!

参考になるのがいろいろあったので意外とすんなりできてよかったです。