バタバタしていて詳しく読めてないですけど、wonderflと連動しているのだそうです。詳しくはこちらをどーぞ。
大人の科学 x wonderfl – wonderflが釣り堀に!魚釣りゲームをつくろう
そういや、釣り堀来月潰れるから、明日とかまた行きたいんだけどな。
それどころじゃないか・・・。ムハ
タグ: flash
プロトタイプやらスケルトンを急ぎで作りたいときに、まれにfl.controls系を使いますが、配置の際に高さの問題がでてきて、いつも忘れてバタバタするのでメモ。
fl.controls系でテキストフィールド(textArea)を内包しているコンポーネントは高さが100pxになる。変数で配置して行く場合など非常にうっとおしいことになる。単体でのheightはoverrideされて見た目の高さを取得できるが、親DisplayObjectのheightは100px。ちなみにgetRectだと単体でも100になる。これはoverrideされていないらしい。(半端だ)
これの原因は大概コンポーネントの中に含まれるtextAreaで、autoSizeがカマされてない素の状態でaddChildされているのかheight=100である。fl.controls.TextInputだと以下のような感じで調整してやれば最適な高さになる。
ただfl.controls.ComboBoxとかだと階層化していてめんどくさいので、
な感じでやっちゃう。
全部試したことがないので、NGなコンポーネントもあるかも知れないけど。
ということでメモ
A、B、・・・Cである・・・
Beyond Interaction ―メディアアートのためのopenFrameworksプログラミング入門
本書は、インタラクションデザインやメディアアートの現場で現在最も注目されている制作環境、「openFrameworks」の世界初の解説書です。 openFrameworksというC++のフレームワークを使用して、プログラミングの初歩から高度な応用まで、具体的なサンプルを作成しながら実践的に学んでいくことを目的にしています。プログラミングの経験のない初心者から、メディアアートに興味を持ち自分で何かを作りたいと考えている方、 ProcessingやFlashなど他の環境は経験しているがより強力なプログラミング環境を探し求めている方まで、多くの方々にとって有益な情報を提供しています。
来週発売だそうです。
ちなみに最初に覚えた言語はFortran。
覚えたいものが多くて
おじいさんにはしんどいですね。
32 ビットを超えたときのuintの挙動
32bitを超えた値だと、超過部分が-1に変化してしまう。
つまりこんな挙動になる。
実行結果
0 @ 4294967295
1 @ 99
2 @ 98
3 @ 198
4 @ 197
finish 197
ややこしいね。
例えば
とすると
0 @ 4294967205
1 @ 9
2 @ 8
3 @ 108
4 @ 107
finish 107
こーなる。
ああ面倒くさい。
ちなみにNumberは53 ビットまで使用可能なので、Numberで計算するとこんな感じになる。
最後にuintに変換した部分は、また超過部分が-1で演算されるので答えは同じになってしまうけど・・。
0 @ 4294967205
1 @ 4294967305
2 @ 8589934600
3 @ 8589934700
4 @ 12884901995
finish 12884901995
to uint = 107
再コンパイル無しでのプレビュー機能。
すげーほしい。
ほしくね?
オラめっさ欲しいわ
SecurityDomain周り
SecurityDomainで諸々メモ。(まだ間違っている部分があるかもしれない)
条件
・セキュリティポリシーファイルを読込先サーバに配置できない
として、どーやってそのサーバに配置されているソースを読み込むか?ということでProxyのような働きをするswfを用意し、それを介して読込先サーバのリソースにアクセスしてみるようなかんじ。
・Security.allowDoaminの設定。
Security.allowDoamin(“*”)でも良いが、危険なので
な感じで動的に設定した方がよさげ。
・LoaderContextの設定
checkPolicyFile = false;
securityDomain =null;
これらを設定するとcrossdomain.xmlを参照し、その時点で停止。
ApplicationDoaminの設定は問題ないが、Security.allowDoamin前に確認されるからか、適応されないっぽい。まぁLoaderContext無しで動くようにする必要がある。
・子swf内クラスのイベント
取得するにはdispatchを受け付けるように、親にもSecurity.allowDoaminが必要(当たり前ですが)
・子swfでのクラス定義のタイミング
ポリシーファイルが定義されている場合は、子swfの変数として
var a:hoge = new Hoge()
見たいにして定着させるが、Security.allowDoaminで開放する場合には、解放後定義しないと参照できない。つまりコンストラクタで
とした後に
new Hoge();
等と空打ちして焼き付ける。
・子swfのクラスの取得
SecurityDomainが同じ場合は、ApplicationDoamin.currentDoamin.getDefinitionでクラスを取得できるが、前述の通りSecurityDomainが異なるためApplicationDoamin.currentDoaminに子swfが含まれていない。このため
みたいに取得する。ただし、これを親クラス側で変数に代入して流用は可能。
ただし型指定をするとエラーになる。
簡単なのは子クラスを格納するクラスを作って、その中にStaticで格納するのが楽。
・Loader系
子swfで定義されたLoader拡張クラスを、親swfでgetDefinitionして取得した後は、親でインスタンス化しても使用可能。ただしcontnt等セキュリティエラーに抵当するプロパティもある。例えばBitmapDataを取得したい場合は、子swfに含まれるLoader拡張クラスの中で、BitmapData化して引き渡すなどの処理が必要。
こんなかんじ?このBtimapは親で自由に使える。Sprite系なども基本newしてしまえば自由に使えるが、SecurityDomainを超えた要素はやはりセキュリティエラーになるので注意。(この辺ローカルでは確認できないので、サーバ上で確認するしかないのだけど・・、そこが非常に面倒)
ただリダイレクト系の分散負荷のシステムだと、結局このproxySWFとそこから呼ばれるソースのIPがまた変わってしまうという延々とループな感じの挙動にってしまう。イメージやらswfやらが対象であればバイナリ化してLoadしたほうが圧倒的に楽。ただFLVの場合が・・・・汗
ということでとりあえずメモ。
結局最終的には、行ごとにTraceを書いて、どこでバグが起きているのか?を書き出している。
Progressionなら、name指定すれば良いのは分かっているが、全部のコマンドにnameを指定するのは正直しんどい。なんか勝手にそのASの何行目のコマンドだよ!とか取得して埋め込めないものだろうか?とか書いてみる。
ゴメンナサイ、ゴメンナサイ。
地道にがんばります。
さて、現実的に使うためにどーするか?ということを考えてみます。特にProgressionで・・・。
問題点としては
1)共有フォントの読み込みがドキュメントクラスのコンストラクタ前に発動してしまう。
2)ProgressionでRSLを配置するとCastDocumentの”_onInit”がロストしてしまう。
この2点をなんとか解決したいと思います。
2)はloaderInfoの”Event.COMPLETE”がRSLが存在すると発動しないというのが起因しているかと思います。(何故なのか?は不明。そもそもRSLのローディングが管理できないのでどーしていいのやら)
ということで、コチラは無理やり”CastDocument”のコンストラクタに
として、_onInitに連結します。(override出来ないから)
これに関しては諸々調べていますが、問題が発生する可能性があるので、暫定的な処理とさせてください。実際にこの手法を用いる際にはリスクがあることをご理解の上、実装してください。(今のところ問題が発生するものとしないものの2つのパターンがあることは確認していますが、明確な切り分けは出来ていません。)
一応_onInitの重複発動(Preloader経由だと”Event.COMPLETE”が発動するので)防止のために、”onInit”の最初に以下の一文を入れておく。