AS3

メインクラスはマウスイベントを受け取れないのか??

AS3

下のようなコードを書いた場合に、FooやBarをクリックすればメッセージが表示されるが、それ以外のところをクリックしても表示されない。 package { import flash.display.*; import flash.events.*; public class Client extends Sprite { public function …

AS3

メインのClientクラスで別のクラスButtonPaneのインスタンスを作って、そのsetupメソッドにthisを渡し、そのなかでthisにaddEventListenerした場合に、なぜかメインのクラスではなくButtonPane、というように見える不可解なバグに遭遇した。きっと今日はもう…

ほかの言語から引っ越してきた人がつまずきやすい点

AS3

外部の画像を読み込んで表示したらなぜか勝手に拡大縮小されている stage.scaleMode = "noScale"; stage.scaleMode = StageScaleMode.NO_SCALE;の方が良さそう 左上隅の座標が(0, 0)じゃない!なんか100ピクセスくらいマイナスだ! stage.align = StageAlign…

GETで引数を渡す

AS3

Flashに外部から引数を渡す方法を調べていた。Java Appletみたいにobjectタグの中で渡すのかと思ったけど、GETで渡された内容を取得できるみたいだ。 log(root.loaderInfo.parameters.hoge);これで?hoge=1とか書くと1が出力される。 - しかしこれではRascut…

rascutの出すエラーメッセージをgrowlで表示

AS3

開発合宿でマリオの死ぬ音とかでデモしていたスクリプトをGrowlに対応させた。Ustreamでデモした。 http://ustream.tv/recorded/liWjviwxwkJqvK1P7uUBcg 普段使うコマンドの前にこのwatch_stdoutってのをつけるだけで使えるので、Djangoとかでも使えるんじゃ…

サーバとやり取り

AS3

まずAS3のコード。rascutで開発しているので3001番でサーバが立ち上がっている。 package { import flash.display.*; import flash.events.*; import flash.net.*; [SWF(width="400", height="300", backgroundColor="#eeffee")] public class Client extend…

yasnippet用のタグyasを作った。 あとActionScript用のスニペットを作り始めた `(progn (defvar classname (capitalize (file-name-nondirectory (file-name-sans-extension (buffer-file-name)))))"") `package { import flash.display.*; [SWF(width="400"…

続・開発環境を構築

id:os0x さんに教えてもらったので最新のlog.asをsvn coした。 http://d.hatena.ne.jp/nishiohirokazu/20080325/1206433123 - /Applications/Adobe Flex Builder 3/sdks/3.0.0/frameworks/ のパスに空白文字が入っているのがうっとうしかったので /usr/lib/f…

開発環境を構築中

いまからMacBookにActionSctipt開発環境を構築する - まずflex 2 sdkを入れる。Adobe IDが見つからないのでもう一度取る。 - 待ってる間にrascutいれる。gem install rascut - ダメだ。sudo gem install rascut - flex 2 sdkをダウンロードしようとするとFle…

Arrayのソースを読む

AS3

tamarin-central/core/Array.as // ECMA 15.4.2.2 public function Array(...args) { var n:uint = args.length if (n == 1 && (args[0] is Number)) { var dlen:Number = args[0]; var ulen:uint = dlen if (ulen != dlen) Error.throwError( RangeError, 1…

PointとArrayで速度比較

AS3

コメントの後がかかった時間。 配列の添え字でアクセスするのよりも、クラスのメンバ変数にアクセスするのの方が速くてちょっとびっくりしたけど、ActionScriptの配列はC的な配列じゃないからかも。逆にクラスのメンバ変数はすでに配列として確保されていそ…

Spriteの座標の精度

AS3

vがSpriteのインスタンスであるときにxに0.09を代入すると0.05に丸められる。 v.x = 0.09; log(v.x); // 0.05 内部では20分の1ピクセル単位(72dpiの場合。Twip)の整数で保持されているんだそうな。そんなことになっているとは思わずにxに値を入れたり出した…

ループ用変数は最初に宣言すべき?

AS3

getTime(); for(var i:int=0; i < N; i++){ } log(getDiff()); 100000000回の繰り返しで464ms、関数冒頭にiの宣言を移動したら462ms。気にしない方が良さそうだ。3番目までに関してはgetlocal3なんてインストラクションがあるから速いかもと期待したんだけど…

続:ただのループなのにスタックオーバーフロー

AS3

http://d.hatena.ne.jp/nishiohirokazu/20080129/1201600506 予想で書いてみますが、コード生成時にdiff * diffの値をスタックからpopする処理が抜け落ちてるのではないでしょうか(多分バグ)。 で、try-catchで囲んだ場合は、正しいコードが生成されていると…