AIR
allowDomain()を使わずに読み込んだ別ドメインのswfとイベントのみをやりとりするsharedEventsの存在を知った。
// 送出側 loader.contentLoaderInfo.sharedEvents.dispatchEvent(new Event(Event.XXX));
// 受取側 loaderInfo.sharedEvents.addEventListener(Event.XXX,xxxHandler);
昨日までとんでもない勘違いをしていた。 ドキュメントクラスの実行タイミングは1フレーム目のロード直後。
ドキュメントクラスが実行されるのは、1フレーム目がロードされきった時なので、 これよりも前に色々書き出されてるといつまでたってもプリローダとかが実行されない。
また、ドキュメントクラスを使用している場合、1フレーム目はコンテンツが完全にロードされるまで次のフレームに移動しない。
当然ながら1フレーム目にステージ配置したムービークリップボタンなどがある場合、読み込まれて配置されるまでnullとなるので、デバッグ段階でもエラーが出る。
よく今までトラブらなかったものだ・・・
digitrick関連ブログではソースを表示するときにSyntaxHighlighter.jsを使っているのですが、
SyntaxHighlighter.jsの"クリップボードにコピー"が使えなくなってしまっている・・・
調べてみると・・・
Flash Player 10 からはマウスクリック等のユーザインタラクションによるイベントからのみ実行することができます。
SyntaxHighlighter.jsはJavaScriptからSWFへデータを渡してクリップボードへコピーさせているようなのですが、仕様変更のためSWFを直接表示して、マウスクリックイベントを発生させなければ、クリップボードにコピーされないということですね。
もう少しSyntaxHighlighter.jsの"クリップボードにコピー"について調べてみると・・・
そもそも、このリンクどういう仕組みかというと、javascriptを呼んでいて ・IEだったら、clipboardData.setDataでコピー ・その他のブラウザだったら、flashを実行してコピー という動作をしています。
ということらしい。またFlash Player 10からAIRのみで使えたClipboardクラスが使えるらしい。こちらも直接のマウスクリックイベントなどがないと動作しないとのこと。
Flashのエラー、#2032。ストリームエラー。
このエラーは、読み込もうとする画像ファイルやXMLファイルが存在しない等でロードできない状態を指す。
この場合、IOErrorEventは指定ファイルが読み込めないというテキストが返される。
しかし、ファイルにアクセス権がない場合はエラーコード#2032のみが返される。
#2032 ストリームエラーの続きを読む
先日、某N社のサイトを開くとブラウザがクラッシュするどころかOSまでがクラッシュするという話を聞いた。
Flashを問わず、開発者はタスクマネージャやアクティビティモニタなどのCPUモニタをチェックすべきではないかと思う。
Flashの場合だと、たとえアプリでなく、ムービーであっても言えることではないかなと。
