今日ハマっていたことをメモだ。

swfから別ドメインにあるswfを読み込んだりする時に、Security.allowDomainメソッドを呼び出したりしますが、swf読み込み元と、読み込まれる側の両方に記述しておく必要があるということ。

あれ、両方?読み込まれる側だけ記述した場合のことを確認してなかった!明日確認しようっと。

あと、相対パスで読み込みswfのurlを記述した場合、swfから見た相対パスではなく、読み込み元が埋め込まれたhtmlから見た相対パスになるということ。

それから、同じドメインでも、絶対パスで書いたならやっぱりSecurity.allowDomainメソッドを呼ぶ必要があるということ。

落とし穴がいっぱいあったなぁ…

今さらながら、FlashDevelop開発環境をカスタマイズして、Flashなしでコンパイルできるようにしてみたよ。

こちらを参考にしたのですが、簡単にメモっておくならば

  • Flash IDEをインストール
  • Flash Developを起動
  • Tools>Program Settings…を開く
  • Main>FlashDevelop>Fallback CodePage を「EightBits」から「UTF-8」に変更
  • Plugins>AS3Context>FlexSDK Location に、Flex 3 IDEのインストール先を設定

んで適当なプロジェクトをビルドしたらできちゃった。

flaファイル作ったら紐づけできないのかな?と思って今調べてるところ。

(17:43追記)
プロジェクトのプロパティを開いて「No output, only run/pre post build commands」にチェックを入れたらFlash IDEでアクティブになっているflaファイルがコンパイルされるとのこと。

でもCS3が起動した。flaファイル使ってグラフィックシンボルとか作ったならば、結局flash起動しなきゃいけないだろうってのは想像ついたけども。

ていうかCS4ではコンパイルしてくれないんスかね。

ACPrintManagerを使ってFlashを含むコンテンツをプリント可能にするにあたって、いくつか問題点が出てきたんです。(前回記事

Flashコンテンツって大抵は動的コンテンツじゃないですか。

例えば画面遷移した時とか、プリント用の画像を生成するメソッドを呼ぶ度に、プリント用画像が上書きされずに、どんどん下へ追加されていっちゃうんですよ。ずらーっと。

そこでACPrintManager.jsを修正。
jsが画像を受け取って表示する辺りのコードをちょいと弄ります。(103行目辺り)

//step #5: get image
if(parent.imgObj){
parent.imgObj.src=null;
}
(中略…画像を表示したり処理するコード)
parent.imgObj = img;

色々試したんだけどこうするのが一番確実だった。
ていうかJavaScriptの勉強になった。asの兄弟だけあって理解しやすい。jsも楽しいなあー

トップページのRSSフィードが4時過ぎに配信されていたことから察するに、cronは正常に作動して再構築がきちんとできていたっぽい。

うん。4時にcron走らせてるんだ。誰も来なそうなので。

ちなみに再構築コマンドをメモっておくと、

(パス省略…)mt-rebuild.pl -all

以上。
どのブログを再構築するかとか、イロイロ設定可能らしいけど、ぇー全部一括でぃぃょ、ってことで。

そんなどうでもよさそうなメモのためのエントリなのでした。

keyboard_arrow_up