こっそりハマったFlashの罠~パブリッシュ設定:非表示レイヤーの書き出し編~
2009年05月25日 - kijima
今日の記事はサクッとメモ書き程度で失礼します。
記事にするとサクッとですが、ハマったのはけっこうズボッとでした。謎のコンパイルエラーと、FlashCS3以降のパブリッシュ設定に追加された「非表示レイヤーの書き出し」の関係について。
ある日、謎のコンパイルエラーに見舞われるようになった。
Flashの開発を進めていたときのこと、ActionScriptにはなんの変更を加えていないのにコンパイルエラーが出るようになった。詳しくは、下のようなエラー。
1119: 未定義である可能性が高いプロパティ hogeButtonに静的型 display.buttons.HogeButton の参照を使用してアクセスしています。
1120: 未定義のプロパティ hogehoge へのアクセスです。
スクリプトを記述している.asファイル側には変更を加えていないので、問題はflaファイル側だろうと思い調べていくと、レイヤーの表示/非表示を切り替えている部分が影響していることがわかった。

思い当たるのはパブリッシュ設定の「非表示レイヤーを書き出す」という項目。初期設定ではチェックが入っているので、見た目上赤いバツがついて非表示になっているレイヤーでも、コンパイル時には「そこに在るモノ」として扱われるんだけど、この項目にチェックが入っていないと、そもそもそこに存在しないモノとして扱われてしまうという。
で、何をしてからコンパイルエラーが出るようになったかを調べていくと、Fireworksから素材のインポートをしたことがキッカケなことがわかった。気をつけなければならないのは、以下のダイアログが表示されたときのようです。

上の画像内の注釈にあるように、チェックボックスを外してデータを読み込んだときは、Flash側のパブリッシュ設定「非表示レイヤーの書き出し」のチェックが自動的に外れてしまうので、要注意です。ハマるのもこっそり、原因もこっそりですね、ははは(笑) …いや、笑い事じゃなかったんだから、ほんとに!
- AfterEffects
- AIR
- android
- Arduino
- AS2
- AS3
- as3
- BitmapData
- CHECKMATE
- crossdomain
- CS4
- Date
- DisplacementMapFilter
- Event
- event
- ExternalInterface
- FileReference
- FireBug
- FireFox
- Flash Lite
- FlashDevelop
- FlashPlayer10
- flash時計
- Flex
- Font
- GoogleMapsAPI
- INFINITY TANK BATTLE
- JSFL
- JSON
- Mobile
- mxp
- PaperVision3D
- Particle
- Progression
- Sound
- TextField
- Tips
- tool
- trace
- wonderfl
- Wonderfl
- xml
- アニメーション
- サンプルコード
- タイムライン
- デバッガ
- バグ
- フレーム
- ブログパーツ
- 爆速







