ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

WindowsとMacでAdobe Flashの挙動が違って四苦八苦しました

わかってみれば、変数のチェックを行っていなかったことと、異なる環境での動作確認をしていなかったことが原因でした。
f:id:AJYA:20150128055704j:plain
photo credit: buggolo via photopin cc


Macで動作しない

WindowsChromeで動作を確認し、WindowsInternet Explorerでも動作を確認したFlashがあります。
作成してから1ヶ月以上経ってから、Macではある機能が動作しないことに気づきました。

Macで細かく確かめてみると、確かにある機能だけ動作していません。
FlashFlash Player上で動作するので、OSの違いによる影響はないだろうと思っていましたが、違っていました。

未定義変数のチェックを追加して動作するように

どこで動作していないのかは、現象が再現したのですぐに把握できました。

パラメータとして値を渡される場合と値を渡されない場合があり、値を渡されなくてもWindowsでは動作していますが、Macでは動作していません。

値を渡されないと、未定義の変数を参照することになり、Macでは動作が期待どおりになりません。
未定義の変数だけれどnullとは比較できたので、if文で変数の値がnullか判定して初期値を設定するように修正したら、Macでも期待どおりの動作をするようになりました。

まとめ

冒頭にも書きましたが、

  • 変数のチェックを行っていなかったために、Macで動作がおかしくなっていた。
  • Windows上でのみ確認し、Macでの確認をしていなかったために、発見が遅れた。

の2点がありました。
今後Flashを修正する際は、この2点を確実に確認していくようにします。