2005年10月4日火曜日

ActionScriptの値の渡し方



ちょいとメモ

ActionScriptにおける参照渡しの話。

基本的にActionScriptは下記の型しか存在しておらず、大きく分けて3つに分類される。



  • プリミティブ型


    • ストリング (String) データ型

    • 数値 (Number) データ型

    • ブール (Boolean) データ型



  • リファレンス型(これでいいのかな?)


    • オブジェクト (Object) データ型

    • MovieClip データ型



  • 特殊な型(なんて言うんだ?)


    • ヌル (Null) データ型

    • 未定義 (Undefined) データ型

    • Void データ型

参照渡しをやりたい時とかはこの辺を気をつける必要がありますよっと。

プリミティブ型は強制的に値渡し、リファレンス型は文字通り参照渡しになるらしい。

以下サンプル

class RefTest
{
var obj:Object;
var val:Number;
function SetObject(obj:Object, val:Number):Void
{
this.obj = obj;
this.val = val;
}
function AddObject(Void):Void
{
this.obj.x += 10;
this.val   += 10;
}
function ViewObject(Void):Void
{
trace("ViewObject : " + this.obj.x + " / " + this.val);
}
}

var test:Object = new Object();
test.x = 10;

var view = new VCViewBase();
view.SetObject(test, test.x);
view.ViewObject();
test.x = 33;
view.ViewObject();
view.AddObject();
view.ViewObject();

結果


ViewObject : 10 / 10

ViewObject : 33 / 10

ViewObject : 43 / 20


Objectは参照渡しに、Numberは値渡しになってますな




0 件のコメント:

コメントを投稿