bouzeTweetFlashから毎フレームExternalInterface.callでJSの関数を呼び出したりしている時に、そのJSの関数内でなにかしらのObjectをreturnしてるとその処理に手間がかかるのか、Flashのフレームレートがすごい落ちる。falseして回避しておく。top変えたり)をしてたりしても同様の現象が起こる。0)でくるんで非同期で処理してあげると回避できた。ExternalIfはXMLでFlashとデータのやり取りをしてるんだけど、データ量が多いとそのシリアライズなのかなんかが遅いよ。2013追記2:CoffeeScriptで行末returnしないようにするには「return」だけ書いとけばいいっぽい。bouzeTweet毎度公式をググるのはいい加減めんどいのでここにまとめてく。APIのドキュメントがこんな状態でかなり不親切でして、色々と苦心したので今後の為にメモ。APIを使う時は、まずAPIを操作するClassの定義が詰まったswfを直接Ustream(http://www.ustream.tv/flash/viewer.rsl.swf)から読み込む。このswfの中のClassを使ってゴニョゴニョする。ローカルで実行する時はあらかじめ「viewer.rsl.swf」をローカルにダウンロードしておき、これを読み込んで使う。※読み込む配信チャンネルが有料のアドフリーアカウントでない場合、www.ustream.tvからviewer.rsl.swfを読み込むと、ビデオ内広告用のデータが読み込まれる。このビデオ内広告がエラーを吐いており、Flashが停止してしまう(2012.12.07時点)。無料アカウントでテストする時は注意。viewer.rsl.swf、viewer.rsl.swc等はここから一式ダウンロードできる。自分がこのAPIを使った時は、API(Logicクラス)を叩く処理をUstreamPlayerクラス(仮)というクラスに封じ込めておいた。このUstreamPlayerクラスを直にnewしてしまうとUstreamPlayer内で参照しているローカルのswcを呼んでしまうため、getDefinitionByNameを使ってインスタンス化する。すればviewer.rsl.swcを外部ライブラリ(swfには含めない)として参照することができるので、オンラインのviewer.rsl.swfと、ローカルのviewer.rsl.swfの内部の挙動が違っていてもエラーは出なくなる(ハズ)。bouzeTweetお仕事でソーシャルシューティングゲーム、ビックロベーダー(PC版)を作りました。FacebookやTwitterにログインしてプレイすると友達がアイテムとして登場して楽しーっていうゲームです。Stage3Dをガリガリ使って作ってるのでハイスペックめな環境でプレイしてみて下さーい。株式会社フルメタル・モンキーズというわけで上でも書いた通り今回はStage3D(Away3D)を使って作ってます。なにぶん商業案件なので、FlashPlayer11以上で、Stage3Dが動かない、もしくは、ソフトウェアレンダリングで動いてしまった時にごめんなさいアラートを出してます。そん時に使ったStage3D環境判定用のクラスがこれ。Stage3Dが使えるかどうかと、ソフトウェアレンダリングになってるかどうかを判定するクラスです。↓使い方で、ログによるとこのアラートが表示されたのは全体のアクセスの中で1.2%とのこと(2012/9/27現在)。FlashPlayer11以上が入ってて、サイトが表示できた人はだいたいStage3Dが動くみたい。bouzeTweetわけあってCIDをもとに対応する文字を取得したい。調べてみたら、CIDと文字が対になった一覧表はこのへんにあるんだけどプログラムからは使いにくい。プログラムから使いやすそうな資料を探してみたところ、どうもAcrobat内部ではCIDをUnicodeに変換するようなことをしてるらしいことがわかった。その変換に関する資料がこれ。CIDを投げたらCID→Unicode→String.fromCharCode()で文字を取得ってクラスを作ったんだけど、どうも取得したUnicodeが期待した文字に変換できてない。この「Unicode」はString.fromCharCodeで変換できる「Unicode」じゃないのかなぁ?うーん...と思ったら、FontForgeで使ってるcidmapっていうCIDのマッピングファイルに「Adobe-Japan1-6.cidmap」ってのがあった。これをコンバートして使ってみたらうまく変換できた。上記のデータはAdobe-Japan2のマッピングデータらしい。bouzeTweetフォントが指定された静止テキストフィールドに、指定されたフォントで表示できない文字がテキストフィールドに入ってると、そのTextFieldが死ぬほど膨らむっぽい。FlashPlayerのバージョン11.0.1.152にて確認。2011こんな感じに膨らむ。bouzeTweetAway3DのWhiteShadingBitmapMaterialを普通に使ってるとBitmapDataをガンガンキャッシュしてメモリリーク起こすのでclearCache()してね、とのこと。Hosting取り急ぎ5秒おきにキャッシュクリアして回避。APIを使う時に、attributes.nameを指定せずattributes.idだけを指定してswfobject.embedSWFすると、SDK内のExternalInterface.objectIDを参照している箇所でnullが返ってjsの方でエラーが出るブラウザがある。このままだとjsの処理が止まってFB.loginとかFB.apiでコールバックが呼ばれなくなってしまうので、attributes.idと同じ名前をattributes.nameで指定してExternalInterface.objectIDを参照できるようにする。bouzeTweet全部雰囲気で理解してるので間違ってる可能性大です。argument3:(NSString)arg3{}※argument2とargument3は引数名(ラベル)で省略可。postsAuthor西村斉輝1984年兵庫県生まれ。2011年多摩美術大学グラフィックデザイン学科卒業。