flash.utils パッケージには、コード実行のタイミング調整、クラスおよびオブジェクトに関する情報の取得、およびエスケープ文字の変換を行うためのパッケージレベルのさまざまな関数が含まれます。
パブリック 関数
 関数定義元
  
指定した setInterval() 呼び出しをキャンセルします。
flash.utils
  
指定した setTimeout() 呼び出しをキャンセルします。
flash.utils
  
describeType(value:*):XML
メソッドのパラメータとして命名された ActionScript オブジェクトを記述する XML オブジェクトを作成します。
flash.utils
  
System.useCodePage の値に従って、UTF-8 またはシステムコードページのいずれかにエンコードされた入力ストリングをエスケープしたコピーを返します。
flash.utils
  
name パラメータで指定したクラスのクラスオブジェクトへの参照を返します。
flash.utils
  
オブジェクトの完全修飾クラス名を返します。
flash.utils
  
value パラメータで指定したオブジェクトの基本クラスの完全修飾クラス名を返します。
flash.utils
  
Flash Player が初期化されてからの経過時間をミリ秒単位で返します。この時間は、基準時刻の計算に使用されます。
flash.utils
  
setInterval(closure:Function, delay:Number, ... arguments):uint
ミリ秒単位で指定した間隔ごとに関数を実行します。
flash.utils
  
setTimeout(closure:Function, delay:Number, ... arguments):uint
ミリ秒単位で指定した遅延時間の経過後に、指定した関数を実行します。
flash.utils
  
System.useCodePage の値に従って、UTF-8 またはシステムコードページのいずれかからデコードされた入力ストリングをアンエスケープしたコピーを返します。
flash.utils
関数の詳細
clearInterval()関数
public function clearInterval(id:uint):void

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

指定した setInterval() 呼び出しをキャンセルします。

パラメータ

id:uintsetInterval() 呼び出しの ID です。次のように変数を設定します。

関連項目




次の例では、setInterval() メソッドを使用して、時間制限を設けた間隔を作成し、通常の間隔である 1 秒後に myRepeatingFunction() メソッドを呼び出します。

myRepeatingFunction メソッドの各呼び出しによって、counter プロパティがインクリメントされ、stopCount プロパティと等しくなったときにプロパティ intervalId によって clearInterval() メソッドが呼び出されます。これは、先に作成された間隔のリファレンス ID です。

package {
    import flash.display.Sprite;
    import flash.utils.*;

    public class ClearIntervalExample extends Sprite {
        private var intervalDuration:Number = 1000; // duration between intervals, in milliseconds
        private var intervalId:uint;
        private var counter:uint     = 0;
        private var stopCount:uint     = 3;
        
        public function ClearIntervalExample() {
            intervalId = setInterval(myRepeatingFunction, intervalDuration, "Hello", "World");
        }

        public function myRepeatingFunction():void {
            trace(arguments[0] + " " + arguments[1]);

            counter++;
            if(counter == stopCount) {
                trace("Clearing Interval");
                clearInterval(intervalId);    
            }
        }
    }
}
clearTimeout()関数 
public function clearTimeout(id:uint):void

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

指定した setTimeout() 呼び出しをキャンセルします。

パラメータ

id:uintsetTimeout() 呼び出しの ID です。次のように変数を設定します。

関連項目




次の例では、setTimeout() メソッドを使用して、指定した遅延時間後に別のメソッドを呼び出します。

ループが作成され、100 万までカウントされます。このリクエストを 1 秒未満で処理可能なコンピュータで所定の時間が経過すると、clearTimeout() によって setTimeout() リクエストが削除され、myDelayedFunction() は呼び出されません。

package {
    import flash.display.Sprite;
    import flash.utils.*;

    public class ClearTimeoutExample extends Sprite {
        private var delay:Number = 1000; // delay before calling myDelayedFunction
        private var intervalId:uint;
        private var count:uint = 1000000;
        
        public function ClearTimeoutExample() {
            intervalId = setTimeout(myDelayedFunction, delay);
            startCounting();
        }

        public function startCounting():void {
            var i:uint = 0;
            do {
                if(i == count-1) {
                    clearTimeout(intervalId);
                    trace("Your computer can count to " + count + " in less than " + delay/1000 + " seconds.");    
                }
                i++;
            } while(i < count)            
        }
        
        public function myDelayedFunction():void {
            trace("Time expired.");
        }
    }
}
describeType()関数 
public function describeType(value:*):XML

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

メソッドのパラメータとして命名された ActionScript オブジェクトを記述する XML オブジェクトを作成します。このメソッドには、ActionScript 言語のプログラミングコンセプト反映が実装されています。

value パラメータが特定の型のインスタンスである場合、返される XML オブジェクトにはその型のすべてのインスタンスプロパティが含まれますが、静的プロパティは含まれません。この状態は、XML オブジェクトの解析時に <type> タグの isStatic 属性の値を調べることによって確認できます。value パラメータが特定の型のインスタンスである場合、この属性は false になります。

特定の型の静的プロパティを取得するには、型自体を value パラメータに渡します。返される XML オブジェクトには、そのタイプの静的プロパティのみでなく、すべてのインスタンスプロパティも含まれています。インスタンスプロパティは、<factory> というタグ内にネストされ、静的プロパティと区別されます。この場合、<type> タグの isStatic 属性は true です。

メモ : オブジェクトの継承階層間の移動のみが必要で、describeType() によって提供されるその他の情報は不要な場合には、代わりに、getQualifiedClassName() 関数および getQualifiedSuperclassName() 関数を使用します。

次の表は、describeType() によって生成される XML オブジェクトのタグおよび属性のいくつかについて説明したものです。

タグ属性概要
<type> XML オブジェクトのルートタグです。
 nameActionScript オブジェクトのデータ型の名前です。
 baseActionScript オブジェクトを定義しているクラスのすぐ上のスーパークラスです。ActionScript オブジェクトがクラスオブジェクトの場合、値は Class になります。
 isDynamicActionScript オブジェクトを定義しているクラスが dynamic の場合は true、それ以外の場合は false になります。ActionScript オブジェクトがクラスオブジェクトの場合、Class クラスは dynamic であるため、値は true になります。
 isFinalActionScript オブジェクトを定義しているクラスが final の場合は true、それ以外の場合は false になります。
 isStaticActionScript オブジェクトがクラスオブジェクトまたはコンストラクタ関数の場合は true、それ以外の場合は false になります。この属性が true の場合には factory タグ内にネストされていないすべてのタグが静的になるため、この属性には isStatic という名前が付けられています。
<extendsClass> ActionScript オブジェクトを定義しているクラスの各スーパークラスには、個別に extendsClass というタグがあります。
 typeActionScript オブジェクトを定義しているクラスを拡張したスーパークラスの名前です。
<implementsInterface> ActionScript オブジェクトを定義しているクラスまたはそのいずれかのスーパークラスによって実装されている各インターフェイスには、個別に implementsInterface というタグがあります。
 typeActionScript オブジェクトを定義しているクラスが実装しているインターフェイスの名前です。
<accessor> アクセサは、getter 関数と setter 関数によって定義されたプロパティです。
 nameアクセサの名前です。
 accessプロパティのアクセス権です。有効な値には、readonlywriteonlyreadwrite などがあります。
 typeプロパティのデータ型です。
 declaredBy関連する getter 関数または setter 関数が含まれるクラスです。
<constant> 定数は、const ステートメントで定義されたプロパティです。
 name定数の名前です。
 type定数のデータ型です。
<method> メソッドは、クラス定義の一部として宣言された関数です。
 nameメソッドの名前です。
 declaredByメソッドの定義が含まれるクラスです。
 returnTypeメソッドの戻り値のデータ型です。
<parameter> メソッドによって定義されるパラメータごとに別個の parameter タグが使用されます。このタグは、常に <method> タグ内にネストされます。
 indexメソッドのパラメータリストにパラメータが表示される順序に対応する番号です。最初のパラメータの値は 1 です。
 typeパラメータのデータ型です。
 optionalパラメータがオプションの場合には true、それ以外の場合は false になります。
<variable> 変数は、var ステートメントで定義されたプロパティです。
 name変数の名前です。
 type変数のデータ型です。
<factory> ActionScript オブジェクトがクラスオブジェクトまたはコンストラクタ関数の場合、インスタンスのすべてのプロパティおよびメソッドは、このタグ内にネストされます。<type> タグの isStatic 属性が true の場合、<factory> タグ内にネストされていないすべてのプロパティおよびメソッドは静的です。このタグは、ActionScript オブジェクトがクラスオブジェクトまたはコンストラクタ関数の場合にのみ表示されます。

パラメータ

value:* — 型の記述が必要なオブジェクトです。使用可能なすべての ActionScript 型、オブジェクトインスタンス、uint などのプリミティブ型、およびクラスオブジェクトを含むこのメソッドに、任意の ActionScript 値を渡すことができます。

戻り値
XML — パラメータとして渡されたオブジェクトの詳細が含まれる XML オブジェクトです。オブジェクトに関する次の情報が記述されています。
  • オブジェクトのクラス
  • クラスの属性
  • クラスから基本クラスへの継承ツリー
  • クラスごとのインターフェイスの実装
  • 宣言したクラスのインスタンスプロパティ
  • 宣言したクラスの静的プロパティ
  • クラスのインスタンスメソッド
  • クラスの静的メソッド
  • クラスのメソッドごとの名前、パラメータ数、戻り値の型、およびパラメータの型

メモ : describeType() では、パブリックなプロパティおよびメソッドのみが表示されます。プライベート、パッケージ内部、またはカスタム名前空間にあるプロパティおよびメソッドは表示されません。

関連項目




package {
    import flash.display.Sprite;
    import flash.utils.describeType;
    
    public class DescribeTypeExample extends Sprite {
        public function DescribeTypeExample() {
            var child:Sprite = new Sprite();
            var description:XML = describeType(child);
            trace(description..accessor.@name.toXMLString());
        }
    }
}
escapeMultiByte()関数 
public function escapeMultiByte(value:String):String

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

System.useCodePage の値に従って、UTF-8 またはシステムコードページのいずれかにエンコードされた入力ストリングをエスケープしたコピーを返します。System.useCodePage を使用すると、ローカルコードページでエンコードされた古いコンテンツにプレーヤーでアクセスできます。ただし、古いコードページを使用しているシステムでしかアクセスできません。たとえば、Shift-JIS としてエンコードされた日本語データは、日本語のデフォルトコードページを使用した OS でしか正しくエスケープおよびアンエスケープできません。

パラメータ

value:String — エスケープするストリングです。

戻り値
String — 入力ストリングをエスケープしたコピーです。System.useCodePage が true の場合、エスケープしたストリングはシステムコードページでエンコードされます。System.useCodePage が false の場合、エスケープしたストリングは UTF-8 でエンコードされます。たとえば、System.useCodePage が false の場合、入力ストリング "Crüe" は、すべてのシステムで "Cr%C3%BCe" としてエスケープされます。system.useCodePage が true で、ラテン語のコードページが使用されている場合、"Crüe" は "Cr%FCe" としてエスケープされます。'ü' 文字が含まれていないラテン語以外のコードページが使用されていると、"Cr?e" という結果になる場合があります。
getDefinitionByName()関数 
public function getDefinitionByName(name:String):Object

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

name パラメータで指定したクラスのクラスオブジェクトへの参照を返します。

パラメータ

name:String — クラス名です。

戻り値
Objectname パラメータで指定したクラスのクラスオブジェクトへの参照を返します。

例外
ReferenceError — 指定された名前の一般定義は存在しません。



次の例では、クラス GetDefinitionByNameExample を使用してステージ上にオレンジ色の四角形を作成します。ここでは以下の手順を実行します。
  1. オレンジ色の背景色と 80 ピクセルのサイズの変数を宣言します。これらは後で四角形の描画に使用されます。
  2. コンストラクタ内で、Class 型の ClassReference 変数は Sprite に割り当てられます。
  3. instance という ClassReference のインスタンスがインスタンス化されます。
  4. 参照によって instance が Sprite オブジェクトになるため、四角形は Sprite で使用可能なメソッドを使用して描画したり、表示リストに追加したりできます。
package {
    import flash.display.DisplayObject;
    import flash.display.Sprite;
    import flash.utils.getDefinitionByName;

    public class GetDefinitionByNameExample extends Sprite {
        private var bgColor:uint = 0xFFCC00;
        private var size:uint = 80;

        public function GetDefinitionByNameExample() {
            var ClassReference:Class = getDefinitionByName("flash.display.Sprite") as Class;
            var instance:Object = new ClassReference();
            instance.graphics.beginFill(bgColor);
            instance.graphics.drawRect(0, 0, size, size);
            instance.graphics.endFill();
            addChild(DisplayObject(instance));
        }
    }
}
getQualifiedClassName()関数 
public function getQualifiedClassName(value:*):String

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

オブジェクトの完全修飾クラス名を返します。

パラメータ

value:* — 完全修飾クラス名が必要なオブジェクトです。使用可能なすべての ActionScript 型、オブジェクトインスタンス、uint などのプリミティブ型、およびクラスオブジェクトを含むこのメソッドに、任意の ActionScript 値を渡すことができます。

戻り値
String — 完全修飾クラス名を含むストリングです。

関連項目

getQualifiedSuperclassName()関数 
public function getQualifiedSuperclassName(value:*):String

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

value パラメータで指定したオブジェクトの基本クラスの完全修飾クラス名を返します。この関数では describeType() よりも迅速に基本クラス名を取得できますが、describeType() で提供されるすべての情報が提供されるわけではありません。

この関数を使用してクラス名を取得した後、getDefinitionByName() 関数を使用してクラス名をクラス参照に変換できます。

メモ : この関数はインスタンス階層に制限されています。一方、describeType() 関数は、value パラメータがデータ型の場合には、クラスオブジェクト階層を使用します。データ型に対して describeType() を呼び出すと、クラスオブジェクト階層に基づいてスーパークラスが返されます。スーパークラスでは、すべてのクラスオブジェクトが Class から継承されます。ただし、getQualifiedSuperclassName() 関数はクラスオブジェクト階層を無視し、より使い慣れたインスタンス階層に基づいてスーパークラスを返します。たとえば、getQualifiedSuperclassName(String) を呼び出すと、技術的には String クラスオブジェクトは Class から継承されますが、Object が返されます。つまり、型のインスタンスか型自体を使用するかどうかに関係なく、結果は同じです。

パラメータ

value:* — 任意の値です。

戻り値
String — 存在しない場合は、完全修飾基本クラス名または null が返されます。

関連項目

getTimer()関数 
public function getTimer():int

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

Flash Player が初期化されてからの経過時間をミリ秒単位で返します。この時間は、基準時刻の計算に使用されます。カレンダー日付 (タイムスタンプ) については、Date オブジェクトを参照してください。

戻り値
int — Flash Player が初期化された時点からのミリ秒数です。Player で SWF ファイルを 1 つ再生を開始し、後で別の SWF ファイルをロードする場合は、戻り値は最初の SWF ファイルがロードされた時刻になります。

関連項目




次の例では、クラス GetTimerExample を使用して、Flash Player で再生を開始した時点からのミリ秒数を取得および出力します。
package {
    import flash.utils.getTimer;
    import flash.display.Sprite;

    public class GetTimerExample extends Sprite {
        public function GetTimerExample() {
            var duration:uint = getTimer();
            trace("duration: " + duration);
        }
    }
}
setInterval()関数 
public function setInterval(closure:Function, delay:Number, ... arguments):uint

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

ミリ秒単位で指定した間隔ごとに関数を実行します。

このメソッドを使用することはできますが、コンパイラ警告が発生します。setInterval() メソッドを使用する代わりに、repeatCount パラメータを 0 (タイマーを無限に繰り返す設定) にして、指定した間隔で Timer オブジェクトを作成することを検討してください。

clearInterval() メソッドを使用して setInterval() の呼び出しをキャンセルする場合は、必ず次のように、後で setInterval() メソッドで参照される変数に setInterval() の呼び出しを割り当ててください。

パラメータ

closure:Function — 実行する関数の名前です。引用符や括弧を使用しないでください。また、呼び出す関数にパラメータを指定しないでください。たとえば、functionName を使用して、functionName()functionName(param) は使用しないでください。
 
delay:Number — ミリ秒単位の間隔です。
 
... arguments — closure 関数に渡す引数のオプションのリストです。

戻り値
uint — 時間のプロセスに対する一意の数値識別子です。

関連項目




次の例では、setInterval() メソッドを使用して、時間制限を設けた間隔を作成し、通常の間隔である 1 秒後に myRepeatingFunction() メソッドを呼び出します。
package {
    import flash.display.Sprite;
    import flash.utils.*;

    public class SetIntervalExample extends Sprite {
        private var intervalDuration:Number = 1000; // duration between intervals, in milliseconds
        
        public function SetIntervalExample() {
            var intervalId:uint = setInterval(myRepeatingFunction, intervalDuration, "Hello", "World");
        }

        public function myRepeatingFunction():void {
            trace(arguments[0] + " " + arguments[1]);
        }
    }
}
setTimeout()関数 
public function setTimeout(closure:Function, delay:Number, ... arguments):uint

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

ミリ秒単位で指定した遅延時間の経過後に、指定した関数を実行します。

このメソッドを使用する代わりに、repeatCount パラメータを 1 (タイマーを 1 回のみ実行する設定) にして、指定した間隔で Timer オブジェクトを作成することを検討してください。

clearTimeout() メソッドを使用して setTimeout() の呼び出しをキャンセルする場合は、後で clearTimeout() メソッドで参照される変数に setTimeout() の呼び出しを割り当ててください。

パラメータ

closure:Function — 実行する関数の名前です。引用符や括弧を使用しないでください。また、呼び出す関数にパラメータを指定しないでください。たとえば、functionName を使用して、functionName()functionName(param) は使用しないでください。
 
delay:Number — 関数が実行されるまでの遅延時間 (ミリ秒単位) です。
 
... arguments — closure 関数に渡す引数のオプションのリストです。

戻り値
uint — 時間のプロセスに対する一意の数値識別子です。

関連項目




次の例では、setTimeout() メソッドを使用して、指定した遅延時間後に別のメソッドを呼び出します。
package {
    import flash.display.Sprite;
    import flash.utils.*;

    public class SetTimeoutExample extends Sprite {
        private var delay:Number = 1000; // delay before calling myDelayedFunction
        
        public function SetTimeoutExample() {
            var intervalId:uint = setTimeout(myDelayedFunction, delay, "Hello", "World");
        }

        public function myDelayedFunction():void {
            trace(arguments[0] + " " + arguments[1]);
        }
    }
}
unescapeMultiByte()関数 
public function unescapeMultiByte(value:String):String

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

System.useCodePage の値に従って、UTF-8 またはシステムコードページのいずれかからデコードされた入力ストリングをアンエスケープしたコピーを返します。System.useCodePage を使用すると、ローカルコードページでエンコードされた古いコンテンツにプレーヤーでアクセスできます。ただし、古いコードページを使用しているシステムでしかアクセスできません。たとえば、Shift-JIS としてエンコードされた日本語データは、日本語のデフォルトコードページを使用した OS でしか正しくエスケープおよびアンエスケープできません。

パラメータ

value:String — アンエスケープする、エスケープされたストリングです。

戻り値
String — 入力ストリングをアンエスケープしたコピーです。System.useCodePage が true の場合、エスケープしたストリングはシステムコードページからデコードされます。System.useCodePage が false の場合、エスケープしたストリングは UTF-8 からデコードされます。たとえば、入力ストリングが "Cr%C3%BCe" で System.useCodePage が false の場合、結果はすべてのシステムで "Crüe" となります。System.useCodePage が true、入力ストリングが "Cr%FCe" で、ラテン語のコードページが使用されている場合も、結果は "Crüe" となります。System.useCodePage を true にして "Cr%C3%BCe" をアンエスケープすると、ラテン語のシステムで "Crüe" が発生するなど、さまざまなシステムでさまざまな不適切な結果が発生します。同様に、System.useCodePage を false にして "Cr%FCe" をアンエスケープすると、システムのコードページによって、"Cre" や"Cr?e" などのさまざまな結果が発生する可能性があります。

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/flash/utils/package.html