それなりブログ

とあるWebエンジニアのそれなりのブログ、JavaScript/Node.js/Python/PHP/ゲーム作成 など

現時点でのAS3未解決疑問点まとめ

現在のActionScript3の未解決疑問点一覧。
誰か教えてくれるとうれしいなと。(1問当り3000ガバス払います)
【トップレベルのプロパティを定義したい】
trace関数とかみたいに、どこからもアクセスできるプロパティを定義する方法がわからない。
以下の無名関数を使ったコードを実行すると、トップレベルと思われるオブジェクト名を表示できますが・・・。

(function():void{trace(this)})(); // -> [object global]

残念ながらglobalキーワードというものは存在しなかった。
JSでいうwindowオブジェクトみたいなもんは無いのかな。

【動的にクラス名やメソッド名を取得したい】
実行中コードのクラス名やメソッド名を動的に取得したい。
【maskに使用したい要素をaddChildしているとエラーになる】
maskに使いたい要素が既にaddChildされていると、ランタイムエラーになる。
addChildできないので、座標と範囲計算がrootを起点にしてしか行えないというのが困っている点。
【graphicsの色だけを変えるときに形状も含めて再描画するしかないのか】
beginFill→drawXXX→endFillを再度やるんじゃなくて、changeColor的メソッド(妄想)で色だけ変えられないものか。
リファレンスを見た限りでは無理そうな気がする。
【for … in の取り出し順が不明】
コチラ参照。
こういう点についてJSよりも検索に引っかかり難いのが、AS3の困った点か。

2 Responses to “現時点でのAS3未解決疑問点まとめ”

  • とおりすがり より:

    for … inの取り出し順番が適当なのは仕様。
    AS3.0ならfor each … inを使い、
    それ以前なら配列でforを利用するしかない

  • kjirou より:

    コメントありがしゃーす
    とりあえず、for … in については諦めがつきました、ありがとうございます。
    ただ、for each … in なんですが
    var obj:Object = {v:1, w:2, x:3, y:4, z:5};
    for each (var item:* in obj) {
    trace(item);
    };
    こういうコードでテストしてみたら、やっぱり
    3 4 5 1 2
    という順序になってしまいました。
    まぁ、ハッシュに順番を期待する方がそもそも間違いということは承知なのでいいんですけど。


コメントを残す

メールアドレスが公開されることはありません。

Categories

Archives