traceアクションを省略の罠
罠にはまりました。
パブリッシュの設定項目に「traceアクションを省略」というのがありますが、 客先展開時にこれをつけてだそうとしたら急に動かないというバグが発生しました
フローティング処理のJSをExternalInterfaceクラスでコールする部分が発動しません。
調べてみたところ、JS側からのデバッグ用の返り値をtraceで確認していたのが原因でした。
// JS function startFloat() { // フローティング処理 return "startFloat is called."; }
// ActionScript trace("isCalled ? : " + flash.external.ExternalInterface.call("startFloat") );
これをtraceアクションを省略にチェックを入れて書き出すと、trace文の出力がされないだけかと思いきや、trace自体が消去された状態でコンパイルされるようで、traceの引数のステートメントがまったく実行されないというオチでした。
なのでデバッグするときは一時変数に格納してからtraceするようにしないと、思わぬバグ報告を受けてしまいますね。