移転しました。
2013年2月〜
http://kanonji.info/blog/

2008年11月〜2013年1月
http://d.hatena.ne.jp/kanonji/

はてなダイアリーに移転してたけど、そっからさらにWordPressでのブログに移転しました。
 
201302061607
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
別窓 | スポンサー広告
----------
[Flash][ActionScript]変数のあれこれ
注意;
・一応Flash MX 2004(ActionScript2.0)を前提
・調べただけで検証してないので、間違っているかもしれない

□フレームアクション:タイムライン変数
varをつけて宣言する。varは省略しても構わない。
var example = 0;


□function内:ローカル変数
functionの中で、varをつけて宣言する。varは省略できない。
varを省略した場合、タイムライン変数となる。
var example1 = 0;
var example2 = 0;
function example_func() {
   var example1 = 1;
   example2 = 1;
   }
this.example_func();
trace(this.example1); example_func内で宣言した「var example1 = 1;」はexample_func終了時に消滅。this.example1は0のまま。
trace(this.example2); example_func内で「example2=1;」と上書きされた。


□どこからでも使える:グローバル変数
_globalを使って明記する。
どこからでも参照できるが、同じ名前のタイムライン変数・ローカル変数が、同じMovieClipにあれば、そっちを優先する。
_global.example = "global";
var example = "timeline";
function example_func() {
var example = "local";
trace(example); local
trace(this.example); これはどっちだろう・・?
}
example_func();
trace(this.example); timeline
trace(_global.example); global


□テキストフィールドの関数
テキストフィールドにインスタンス名を入力し、textプロパティを使ってテキストフィールドの内容にアクセスできます。
テキストフィールドのインスタンス名:textfield_instance:
trace(textfield_instance.text); テキストフィールド
textfield_instance.text = 入力欄;
trace(textfield_instance.text); 入力欄:


また、以前のバージョンの互換のため残っているらしいですが、
テキストフィールドをダイナミックテキストまたはテキスト入力の設定にすると変数名を設定できます。
・その変数名で、テキストフィールドの内容を取得。
・その変数に代入することで、テキストフィールドの内容を変更。
することが出来る。
テキストフィールドの変数名:textfield_var:
trace(textfield_var); テキストフィールド
textfield_var = 入力欄;
trace(textfield_var); 入力欄:


□クラスを定義しているとき
class example {
   var x = 0; xはプロパティ
   var y = "propaty"; yはプロパティ
   function example_func() {
      var z = "local_var";たぶんローカル変数
      return z;
      }
   }
class_instance = new example;
trace(class_instance.x); 0
trace(class_instance.y); "propaty"
trace(class_instance.example_func); "local_var"


□サーバサイドスクリプト(FCS)
サーバサイドスクリプトでは、JavaScriptに準拠した仕様のため、function内にて「var」の有無に関わらず、ローカル変数となる。
function外では消滅するので注意が必要。
その為、全てのfunctionより上部に(というより行頭に)「var example」といった感じで宣言する。
「var」なのになぜかグロール変数らしい。(JS準拠だから?)
var example, example_so;
application.onAppStart = function()
{
   example_so = SharedObject.get("test");
}
trace(example_so); 共有オブジェクト"test"の中身
スポンサーサイト
別窓 | Flash | コメント:0 | トラックバック:0
200511130057
[Flash][ActionScript]色んな状況での「this」の動き
注意;
・一応Flash MX 2004(ActionScript2.0)を前提
・調べただけで検証してないので、間違っているかもしれない

□thisの動き、基本動作
フレームアクション:そのフレームがあるタイムラインのMovieClip
ムービークリップアクション:そのMovieClip自身
ボタンアクション:そのボタンが配置されているMovieClip(ボタン自身を指すと勘違いしがちだが、違う)

functionの中:基本動作と同じ。
var x = 0;
function example() {
   this.x = 1;
   }
example();
trace(x); xは1になっている。


カスタムオブジェクトのコンストラクタ関数内:作成されたオブジェクトのインスタンスを指す。(この場合、thisはプロパティの設定に使用される)
var x = 0;
function example() {
   this.x = 1;
   }
obj = new example();
trace(obj.x); インスタンスobjのプロパティxが1に設定される。


クラスの中:クラスのインスタンスを指す。(ActionScript2.0ではクラスのインスタンスを指すのに、thisは省略可能とされていますが、省略するとバグる時がある様子)
class example {
   var x = 0; xはプロパティ
   function example_func() {
      trace(this.x); クラスのインスタンス内のプロパティxの中身、0
      }
   this.example_func(); クラスのインスタンス内のexample_func()を指す
   }
class_instance = new example;クラスのインスタンスを作成。

この場合thisはクラスのインスタンスを指すので、
クラス内ではthis.x:クラス外からはclass_instance.x
クラス内ではthis.example_func:クラス外からはeclass_instance.example_func

他の使い方があれば追記
別窓 | Flash | コメント:0 | トラックバック:0
200511122345
| プログラマのチラシの裏 |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。