Macromedia Flash非公式テクニカルノート
Sound.onLoadが実行されない
ID: FN0211001 |
Product: Flash |
Platform: All
Version: 6.0 and above
1. 現象
イベントハンドラメソッド'Sound.onLoad'を定義して'Sound.loadSound'で外部MP3ファイルを読込んだときに、ロードが完了したにも拘わらず'onLoad'メソッドが呼出されないことがあります。とくに、ローカルファイルを読込んだ場合や、サーバーからの2回目以降のロードでデータにキャッシュが残っている場合に発生します。
2. 原因
'Sound.loadSound'を実行した後に'Sound.onLoad'イベントハンドラメソッドを定義すると、その'function'定義時にはすでにロードは完了してしまうことがあります。とくに、ローカルのファイルやデータがキャッシュに残っていて、サウンドファイルの読込みが早い場合に、現象が発生します。
// [問題が発生するスクリプトの例]
// フレームアクション
my_sound = new Sound(this);
my_sound.loadSound("test.mp3", false); // サウンドファイルのロード実行
my_sound.onLoad = function(success) { // 【この定義時にはロードが完了していることがある】
this.start();
};
3. 対処法
'Sound.loadSound'の実行前に、イベントハンドラメソッド'Sound.onLoad'を定義してください。
// フレームアクション
my_sound = new Sound(this);
my_sound.onLoad = function(success) { // まずイベントハンドラメソッドを定義
this.start();
};
my_sound.loadSound("test.mp3", false); // その後サウンドファイルのロードを実行
_____
作成者: 野中文雄
協力者: Flash ActionScript ML
作成日: 2001年11月11日
Copyright ©
2001-2006 Fumio Nonaka. All rights reserved.
|