3月aboutmemo.393個人的メモです。間違いなどありましたらご指摘ください。Comment|ステージ上のオブジェクトの座標を整数に丸めてくれる便利JSFLに罠があることに気づきました。CS5で気づいて、CS4でも同じことになったから既知の現象でしょう。丸めるJSFLはいろんな方が公開してくれてるのでボクもどこかで拾ったものを使ってます。選択したオブジェクトを一括でバーンと変換してくれて便利なんですが、保存時に結果を変換後の座標を保持してくれないことがあるようだということに気づき、なんとなく原因と対策っぽいこともわかったのでメモしときます。座標を保持しない再現手順を書きます。(うちでの再現率:100%)■手順(準備編)1.新規flaファイルを作成2.何でもいいから四角いシェイプを書いてMC化(シンボル1とする)3.シンボル1をさらにMC化(シンボル2とする)4.シンボル2の中に入り、シンボル1のx座標を0.5にする(プロパティパネルから数値変更)5.保存して、ファイルを閉じる。6.再度ファイルを開き、シンボル2の中のシンボル1の座標を確認するとx座標は0.5となっている。→ここまでは何の問題もない■手順(不具合発生編)7.シンボル1を選択した状態で上記JSFLを実行する。8.プロパティパネル上では0.5が1となっているはず。9.ファイルを上書き保存して閉じる。10.ファイルを開いて、シンボル2の中のシンボル1の座標を確認するとx座標は0.5となっている。→なにこれ、ばかなの、しぬのちなみにJSFLを使わずに手動でプロパティパネルの数値を0.5→1に変更した場合は保存は反映されます。(当たり前か)では何が問題か。ここからは推測ですが、上記JSFLでの結果ではflaファイル的には「変更扱いにされていない」っぽいようです。ためしに上記手順8まで実行した状態でファイルを保存するまえにシンボル2の中のタイムラインのレイヤーをひとつふやしてから保存して開き直してみると、こんどはちゃんとシンボル1座標変更が反映されているのが確認できます。ここで注意が必要なのは、シンボル2の中のタイムラインをいじったということ。シンボル2のタイムラインではなく、メインタイムラインのレイヤーをひとつふやしてもシンボル1の座標変更は反映されません。FlashはMC単位で変更があったかなかったかを判断して、状態を保存するかしないかを決めてるっぽいので関係ないタイムラインに変更を加えても意味がない、ということになりそうです。確実に「MCに変更を加えたぞ」と判らせてあげるために、上記JSFLを改造。最後に2行追加しただけです。レイヤーを追加してすぐにその追加したレイヤーを削除する。結果的には何の変化もない意味のない処理ですが、これで「MCに変更を加えたぞ」とflaに判らせてあげることができるようになります。このJSFLを用いて上記手順を実行すると小数点丸めは確実に保存時に反映されるようなりました。力技な感じですが、もっとマシな方法がありました教えてくださいませ。(果たしてCS5.5では直ってるのか?・・・まぁ直ってないだろうな。外部SWFファイルの読み込みで、子swf側で動的に配置したmcが表示されない。外部SWFファイルの読み込みで、子swf側で動的に配置したmcが表示されない。外部SWFファイルの読み込みで、子swf側で動的に配置したmcが表示されない。外部SWFファイルの読み込みで、子swf側で動的に配置したmcが表示されない。外部SWFファイルの読み込みで、子swf側で動的に配置したmcが表示されない。memo.393about。