AS2.0でもランタイムエラーをチェック

ランタイムエラーはActionScript3.0だけだと思っていたのですが、それ以下のAS2.0や8以下のswfバージョンでパブリッシュしても警告は表示されるのですね。警告はデバッグプレイヤーにて確認できます。


簡単なスクリプトで実験してみました。

ActionScript 2.0 のランタイム警告を実証

ステージに何も配置しない状態で、ないはずのインスタンス(下の図ではmc)を参照します。(AS2.0/Flash MX 2004で記述/バージョン7でパブリッシュ)


Flash Tracerを入れたFirefoxで再生してみると、何らかの警告が出て来ているのが分かります。

Flash Tracerの「Display Warning」にチェックしている必要があります。


S-JISで出力されているため文字化けしています。所定の場所にあるログファイル「flashlog.txt」を適当なテキストエディターで開いてみると次のように出力されているのがわかります。

 --- Flash Debug Test Start ---
 警告 : 宣言されていない変数を参照しています 'mc'

あなたのSWFももしかしたら

Flash Tracerで世の中のいろいろなフラッシュを見てみると、このワーニングがでまくりです。例えば次のようなものです。

  • 警告 : 宣言されていない変数を参照しています 'fader_mc' //←タイムラインに配置される寸前で呼び出してました!
  • 警告 : 'Stage' にはプロパティ '_height' がありません //←ごめんなさい!
  • 警告 : onHTTPStatus は関数ではありません //←コンポーネントの警告?
  • 警告 : ドメイン ○○○.▽▽▽.com にはメタポリシーが指定されていません。デフォルトのメタポリシー 'all' を適用しますが、この設定は推奨されていません。この問題の解決方法については、http: //www.adobe.com/go/strict_policy_files_jp を参照してください。 //←話題の9.0.124の警告ですね。

AS3.0(with Strirct Mode)だとアラートがでるので対処しなければなりませんが、AS1/2時代に作られたコンテンツはこのような警告はでなかったので、開発者は気に留める事がなかったのです。


Flashは表現のツールという観点から考えれば警告は無視していい気もしますが、自分の作った物が警告だらけなのはなんだか気持ち悪いですね。一度デバッグプレイヤーで見てみてはいかがでしょうか?



一個のSWFから大量の警告が。。
自分の作ったSWFが大量の警告を発していると凹みます(汗