AIR で Actionscript3 の Livedoc (reference) があった
タイトルのまんま。
通常、重い adobe のサイトでみないといけないのがローカルで
それも AIR でみることができます。
相当便利です。
と、おもわせといて、、、
検索できないのが痛い。それさえできれば相当便利なのにな〜

DL はここから。AIR App: AS3 Language Reference
(※AIR のインストールは必要です。)
タイトルのまんま。
通常、重い adobe のサイトでみないといけないのがローカルで
それも AIR でみることができます。
相当便利です。
と、おもわせといて、、、
検索できないのが痛い。それさえできれば相当便利なのにな〜

DL はここから。AIR App: AS3 Language Reference
(※AIR のインストールは必要です。)
以前書いた perlをワンライナーで便利な使い方(compcを使う時に便利)を使って
swc ファイルを作ろうとした矢先にswc ライブラリハマりましたよ。
で、swc にビルドしようとした時にひっかかりました。
外部 swc を読み込むには option をつければいきました。
1 | compc compc -output [作成されるファイル名] -source-path [sourceのある場所] --include-classes [すべてのクラスファイル] -compiler.library-path [swc のあるディレクトリ] |
とすれば外部の swc もまとめた状態で build してくれます。
組み込む swc のライセンスには気をつけてください
昔にactionscriptの変数のスコープがfunctionスコープということを知らずに凄いハマったことがあって
それ以来は気をつけてはいたんですが、どうやらブロックスコープを実現できるみたいなので試してみた。
結論から言うと、withを使う。
actionscirpt1のころからwithの存在を知ってはいたけどコード量を短くする以外に使い道もわからなく
そんなに困ることもなく存在すら忘れ去れそうになっていましたw
でも、この子は非常に優秀です。できる子でした。
perlでいうlocalみたいなことができるんです。
素晴らしすぎます。今まで知らなかったことが残念で仕方ありません。
actionscript、javascript共に試したコードをつるしときます。
ver FlashIDE
1 2 3 4 5 6 7 8 9 10 11 | var hoge:Number = 8; trace("default:" + hoge); // 8 (function():void { var hoge:Number = 10; trace("function:" + hoge); // 10 })(); with( {hoge:1} ) { trace("with:" + hoge); // 1 } |
ver flex SDK(上のFlashIDEと対してかわりはありません。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | package { import flash.display.Sprite; public class Hoge extends Sprite{ public function Hoge() { var hoge:Number = 8; trace("default:" + hoge); // 8 (function():void { var hoge:Number = 10; trace("function:" + hoge); // 10 })(); with( {hoge:1} ) { trace("with:" + hoge); // 8 <- これがおかしい } } } } |
ver javascript
1 | (function(){var hoge=10;with({hoge:4}){alert(hoge);}alert(hoge);})(); // 4が表示され、次に10が表示される |
Flash IDEから使用した場合は問題なくブロックスコープが実現されています。
ただ、、、、
Flex SDKを使ってコンパイルする際には、withを使ってのブロックスコープが実現されません。
FlashPlayerのせいでもなさそうですし、おそらくはコンパイル時のSDKの実装によるものだと思います。
ちなみにSDKのバージョンはVersion 3.1.0 build 2710です。
普段はSDKをメインに開発してるので結局はfuncionを使っての方法でやるしかなさそう。。。
FlashDevelopも確かSDKのはずだからできないのかな??
windowsないんで試せる人いたら教えてほしーっす。
テンションあがったのになぁー
wiiFlashの接続があるswfをstandaloneのflashplayer(debug player)で起動すると
下記みたいなエラーが表示され起動しない。
1 2 3 4 5 6 | SecurityError: Error #2010: ローカルファイルシステムの SWF ファイルはソケットの使用が許可されません。
at flash.net::Socket/connect()
at WiiSocket/connect()
at org.wiiflash::Wiimote/connect()
at uranodai.display::Document()
at uranodai.slides::Slides() |
twitterにpostするとuranodaiさんが教えてくれた。
「Flash Playerのグローバルセキュリティのせいかも」と。
URLも教えてもらい試した結果、一時的にErrorはでなくなった。
正確にいうと、あるflash playerのバージョン(9.0.45.0)だとErrorがでない。ただし起動はするが実行されない。
それ以外だと上記のSecurityErrorがでる。
さっぱりわかんねー
どれか起動してくれたらいいのにな。
一応Flash IDEかAIRにすれば動いてるからいいけど、どーにかしてほしい。
ローカルのでは動かしたいな。ここも試したけど上手くいかず。
flash playerのセキュリティややこしいな。
誰か解決方法分かる人いれば教えて下さい。
uranodaiさんがsparkにコミットしたStreetviewを使って試してみた。
雑感だけど凄い便利にさわれた。
簡単にstreetviewをいじって遊べた。
んでwiiハンドルで操作するのは気になるのは何点かあるけど、
とりあえず形にはなった感じ。
あとは修正して問題なければ公開する予定。
ちなみに今回使用したconfigファイル。
(※)ソースは汚いのでおいおい公開します。
1 2 3 4 5 6 7 8 9 | <?xml version="1.0" encoding="UTF-8"?> <application xmlns="http://ns.adobe.com/air/application/1.0"> <id>StreetViewWii</id> <filename>StreetViewWii</filename> <name>StreetViewWii</name> <initialWindow> <content>StreetViewWii.swf</content> </initialWindow> </application> |
公開証の作り方
1 | adt -certificate -cn SelfSigned 1024-RSA [証明書名] [パスワード] |
テスト
1 | adl [大元のソースコード] |
air用swf作成
1 | amxmlc [大元のソースコード] |
airファイル作成
1 | adt -package -storetype pkcs12 -keystore [証明書名] [作成するairファイル名] [configファイル] [air化したいswfファイル] |
これでおk。
ちなみに全てFlex SDKでターミナルから叩いてやりました。
uranodaiさんどもっす!!