いままでCD-ROMコンテンツのようにスタンドアロンで作る際の終了処理は、fscommandを使っていました。これがAS3ではどうなるのか試してみました。
[スクリプト概要]
画面をクリックすると終了する。
----
[外部クラスに記述]
まず最初に外部クラスで書いてみました。
AS3ではfscommandはflash.systemのクラスに
移動しているとのことなのでそのように書いてみます。
package {
import flash.display.Sprite;
import flash.events.MouseEvent;
// fscommandはflash.systemに移動しています。
import flash.system.fscommand;
public class Fscmd extends Sprite
{
public function Fscmd ()
{
// クリックを設定
stage.addEventListener( MouseEvent.CLICK , onClick );
}
// クリックの動作 onClick
public function onClick ( event:MouseEvent )
{
trace("デバッグプレイヤーだとquitは実行されないようです");
fscommand( "quit" );
}
}
}
----
[フレームに記述]
つづいて、フレーム記述だとどうなるかをやってみます。
まず、ためしにimport記述なしで1フレーム目に書いてみたところ、
注意もエラーもなく通りました。もちろん、ちゃんと動作します。
// クリックを設定
stage.addEventListener( MouseEvent.CLICK , onClick );
// クリックの動作 onClick
function onClick ( event:MouseEvent )
{
trace("デバッグプレイヤーだとquitは実行されないようです");
fscommand( "quit" );
}
というわけで、 import flash.system.fscommand が
省略してもフレーム内では通るようです。
この件については野中さんの記事「importの使い方が変わった」の■スクリプト003で
タイムライン上の自動的なimportについて触れられています。
また、タイムライン上でどのクラスが継承されるかについては
import指示子:図■implicitImports.xmlの内容で、私も確認しまして、とても勉強になりました。
import flash.system系も自動でimportされてますね。
----
[今回気づいた点]
・AS3ではfscommandはflash.systemのクラスに移動している。
・外部クラスではしっかりと上記の場所からimportする。
・けれどフレーム記述では省略してよい。
----
サンプルも以下に置きます。
_____________________________________________________
参考文献