« playlistという考え方(その1) | メイン | Pointクラスを使おう »

Flash Player 7以降での_global変数の注意点

拙著の「ActonScriptスーパーサンプル集」(ピンク色の本)のp.119「雪が降るアニメーション」がどーしてもちゃんと動かないという質問をいただきました。サンプルファイルはちゃんと動くのになぜ〜というものです。

その原因は、この本がFlash MX対応つまりFlash Player 6対応で書かれているからです。そして、サンプルファイルがうまく動作する理由は、パブリッシュ設定がFlash Player 6になっているからです。Flash Player 7以降の設定でパブリッシュするとうまく動作しない部分があるんです。

Flash Player 7以降で_global変数を使う場合には、次のように_global.depthの初期化が必要になってしまいました。p.120の該当箇所を次のように修正して試してみてください。

function init() {
//擬似的な深度
if (_global.depth == undefined) {
_global.depth = 1;
} else {
myDepth = ++_global.depth;
}
//遠くほど小さく、手前ほど大きくする
this._width = 3+0.5*myDepth;
this._height = 3+0.5*myDepth;
//半透明
this._alpha = 50;
}

※このページ以外にも同様のスクリプトがあります。Flash Player 7以降に対応するためには修正してご利用ください。

投稿者 oshige : 2005年11月18日 14:31

コメント

丁寧な解説ありがとうございます。
ご指摘の通り、global、Flash Player のパブリッシュ設定や
action scriptのバージョンも変えてみたり色々してみたのですが、やはりダメでした。
ですが、あきらめず、これからもこの本を進めていって、解決できるようにしたいとおもいます。

投稿者 $# : 2006年08月03日 21:18