MXMLとActionscriptの関係について

こっちで書いた事をもう少しまとめてみる。
http://d.hatena.ne.jp/orange_juice_dev/20090123/1232691379


で呼び込まれたASファイルは
呼び元のMXMLファイルからロジックのみを切り離されたファイルだと思うのが正解だと思う。

だからASファイル側はどこにも明記されていないのに呼び元のMXMLの部品やエフェクトが利用出来る。


ASファイルにいきなりfunctionだけをガリガリ書くのも納得出来る。
確かにmxml側がActionScriptに変換された時に、
取り込まれる事を考えたらfunctionや変数以外が存在したらおかしい。

よってで呼び込まれるASファイルにはロジック以外を書くことが出来ない。



これを踏まえた上でこうするとこのような奇妙な状態も出来る。

AAA.mxml
 
 
 



xxx.as
 var name:String = "そんなばかな";

 function init():void{
  address.text="どうだろ";
  test();
 }



yyy.as
 function test():void{
  Alert.show(name);
 }



xxx.asとyyy.asは一見なにもつながりが無いのだが、
AAA.mxmlによって取り込まれている為、AAA.mxmlの部品だけでなく、
お互いのfunction や変数まで見えているのだ。


う〜ん、非常に気持ち悪い(笑)



この3つのファイルは最終的には1つになるので、以下のようになるはずだ。



AAA.as
 var name:String = "そんなばかな";

 function init():void{
  test();
 }

 function test():void{
  Alert.show(name);
 }


こうなると分かっていても気持ち悪いなあ。
自ファイル、呼び元のmxmlファイルでも使っていない関数や変数でも
参照されている可能性があるってことは知らずに変更した影響が出るだろうし。

この書き方は避けた方がいい気がするなあ・・・。

http://actionscript.g.hatena.ne.jp/d4-1977/20080727/1217158055