ActionScript3事始め
前から興味があったAS3を仕事でも使いそうです。
というわけで、しばらくlearning。
AS3その1 基礎知識
ActionScriptはAVM2でコンパイルされると、ActionScript ByteCode(abcファイル)になる。
で、それをAVM(ActionScript VM)が解釈、最終的にswfにする。
AS3その2 Hello
ひとまずHello。
こんな感じででけた。
SpriteクラスってのがMainみたいなの?かな。
package { import flash.display.Sprite; import flash.text.TextField; public class learningAs3 extends Sprite { public function learningAs3() { var t:TextField = new TextField(); t.text = "Hello ActionScript3."; t.width = 300; t.height = 200; t.x = 50; t.y = 20; addChild(t); } } }
AS3その3 環境とショートカット
環境的なところを書くのを忘れていたので。
Eclipse3.2.2 + FlexBuilder plugin 2.0.1(en)
でやっとります。いまのところさくさく動いているけど、
それはAS3プロジェクトでやっているからみたいですね。
ちなみに
Alt+Shift+X, FでFlexアプリケーションの実行。これは良く使いそうですね。
AS3その4 インスタンス生成、メソッド呼び出し
packageとかはおいておいて、ひとまずインスタンス生成と、メソッド呼び出し。
メソッドといえども、functionで記述方法がちょっとだけ違うね。
デフォルト値みたいなのも引数で決定できる。
Adobeが出している、AS3プログラミングガイドの例を若干変えただけ。
package { public class Greeter { public static var validName:Array = ["a", "b", "c"]; public function greet(s:String = ""):String { var str:String; if(s == "") { s = "AAA"; } else if(validNames(s)) { s = "BBB"; } else { s = "CCC"; } return s; } public static function validNames(input:String = ""):Boolean { if(validName.indexOf(input) > -1) { return true; } else { return false; } } public static function greeterName():String { return "simple greeter"; } } }
package { import flash.display.Sprite; import flash.text.TextField; public class learningAs3 extends Sprite { public function learningAs3() { var t:TextField = new TextField(); t.text = "Hello ActionScript3."; t.width = 300; t.height = 200; t.x = 50; t.y = 20; var g:Greeter = new Greeter(); //インスタンスメソッド呼び出し var s:String = g.greet("aaa"); t.appendText("\n"); t.appendText(s); t.appendText("\n"); //staticメソッド呼び出し t.appendText(Greeter.greeterName()); addChild(t); } } }