flash.utils パッケージには、コード実行のタイミング調整、クラスおよびオブジェクトに関する情報の取得、およびエスケープ文字の変換を行うためのパッケージレベルの様々な関数が含まれます。
パブリックメソッド
| | 関数 | 定義元 |
|---|
| | | 指定した setInterval() 呼び出しをキャンセルします。 | flash.utils |
| | | 指定した setTimeout() 呼び出しをキャンセルします。 | flash.utils |
| | | メソッドのパラメータとして指定された ActionScript オブジェクトを記述する XML オブジェクトを作成します。 | flash.utils |
| | | System.useCodePage の値に従って、UTF-8 またはシステムコードページのいずれかにエンコードされた入力ストリングをエスケープしたコピーを返します。 | flash.utils |
| | | name パラメータで指定したクラスのクラスオブジェクトへの参照を返します。 | flash.utils |
| | | オブジェクトの完全修飾クラス名を返します。 | flash.utils |
| | | value パラメータで指定したオブジェクトの基本クラスの完全修飾クラス名を返します。 | flash.utils |
| | | Flash Player が初期化されてからの経過時間をミリ秒単位で返します。この時間は、相対時間の計算に使用されます。 | flash.utils |
| | | ミリ秒単位で指定した間隔ごとに関数を実行します。 | flash.utils |
| | | ミリ秒単位で指定した遅延時間の経過後に、指定した関数を実行します。 | flash.utils |
| | | System.useCodePage の値に従って、UTF-8 またはシステムコードページのいずれかからデコードされた入力ストリングをアンエスケープしたコピーを返します。 | flash.utils |
public function clearInterval(id:uint):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
指定した setInterval() 呼び出しをキャンセルします。
パラメータ
| id:uint —
setInterval() 呼び出しの ID です。次のように変数を設定します。
|
関連項目
例
次の例では、
setInterval() メソッドを使用して、時間制限を設けた間隔を作成し、通常の間隔である 1 秒後に
myRepeatingFunction() メソッドを呼び出します。
myRepeatingFunction メソッドの各呼び出しによって、counter プロパティがインクリメントされ、stopCount プロパティと等しくなったときに clearInterval() メソッドがプロパティ intervalId によって呼び出されます。これは、先に作成された間隔のリファレンス 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);
}
}
}
}
public function clearTimeout(id:uint):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
指定した setTimeout() 呼び出しをキャンセルします。
パラメータ
| id:uint —
setTimeout() 呼び出しの 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.");
}
}
}
public function describeType(value:*):XML| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
メソッドのパラメータとして指定された ActionScript オブジェクトを記述する XML オブジェクトを作成します。このメソッドは、ActionScript 言語に対してリフレクションのプログラミング概念を実装します。
value パラメータが特定の型のインスタンスである場合、返される XML オブジェクトにはその型のすべてのインスタンスプロパティが含まれますが、静的プロパティは含まれません。この状態は、XML オブジェクトの解析時に <type> タグの isStatic 属性の値を調べることによって確認できます。value パラメータが特定の型のインスタンスである場合、この属性は false になります。
特定の型の静的プロパティを取得するには、型自体を value パラメータに渡します。返される XML オブジェクトには、そのタイプの静的プロパティのみでなく、すべてのインスタンスプロパティも含まれています。インスタンスプロパティは、<factory> というタグ内にネストされ、静的プロパティと区別されます。この場合、isStatic 属性(<type> タグ)は true です。
注意:オブジェクトの継承階層間の移動のみが必要で、describeType() によって提供されるその他の情報は不要な場合には、代わりに、getQualifiedClassName() 関数および getQualifiedSuperclassName() 関数を使用します。
次の表は、describeType() によって生成される XML オブジェクトのタグおよび属性のいくつかについて説明したものです(返されるすべてのクラス名およびインターフェイス名は完全修飾名です)。
| タグ | 属性 | 説明 |
|---|
<type>
| | XML オブジェクトのルートタグです。 |
| | name | ActionScript オブジェクトのデータ型の名前です。 |
| | base |
ActionScript オブジェクトを定義しているクラスのすぐ上のスーパークラスです。ActionScript オブジェクトがクラスオブジェクトの場合、値は Class になります。
|
| | isDynamic |
ActionScript オブジェクトを定義しているクラスが dynamic の場合は true、それ以外の場合は false になります。ActionScript オブジェクトがクラスオブジェクトの場合、Class クラスは dynamic なので、値は true になります。
|
| | isFinal |
ActionScript オブジェクトを定義しているクラスが final の場合は true、それ以外の場合は false になります。
|
| | isStatic |
ActionScript オブジェクトがクラスオブジェクトまたはコンストラクタ関数の場合は true、それ以外の場合は false になります。この属性には isStatic という名前が付けられています。これは、この属性が true の場合には factory タグ内にネストされていないすべてのタグが静的になるためです。
|
<extendsClass>
| |
ActionScript オブジェクトを定義しているクラスの各スーパークラスには、個別に extendsClass というタグがあります。
|
| | type | ActionScript オブジェクトを定義しているクラスが拡張しているスーパークラスの名前です。 |
<implementsInterface>
| |
ActionScript オブジェクトを定義しているクラスまたはそのいずれかのスーパークラスによって実装されている各インターフェイスには、個別に implementsInterface というタグがあります。
|
| | type | ActionScript オブジェクトを定義しているクラスが実装しているインターフェイスの名前です。 |
<accessor>
| | アクセサは、getter 関数と setter 関数によって定義されたプロパティです。 |
| | name | アクセサの名前です。 |
| | access |
プロパティのアクセス権です。有効な値には、readonly、writeonly、readwrite などがあります。
|
| | 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 オブジェクトがクラスオブジェクトまたはコンストラクタ関数の場合、インスタンスのすべてのプロパティおよびメソッドは、このタグ内にネストされます。isStatic 属性(<type> タグ)が true の場合、<factory> タグ内にネストされていないすべてのプロパティおよびメソッドは静的です。 このタグは、ActionScript オブジェクトがクラスオブジェクトまたはコンストラクタ関数の場合にのみ含まれます。
|
パラメータ
| value:* — 型の記述が必要なオブジェクトです。このメソッドには、使用可能なすべての ActionScript 型、オブジェクトインスタンス、ユニットやクラスオブジェクトなどのプリミティブ型を含む任意の 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());
}
}
}
public function escapeMultiByte(value:String):String| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 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" という結果になる場合があります。
|
public function getDefinitionByName(name:String):Object| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
name パラメータで指定したクラスのクラスオブジェクトへの参照を返します。
パラメータ
戻り値 | Object —
name パラメータで指定したクラスのクラスオブジェクトへの参照を返します。
|
例外 例
次の例では、クラス
GetDefinitionByNameExample を使用してステージ上にオレンジ色の四角形を作成します。ここでは以下の手順を実行します。
- オレンジ色の背景色と 80 ピクセルのサイズの変数を宣言します。これらは後で四角形の描画に使用されます。
-
コンストラクタ内で、Class 型の
ClassReference 変数は Sprite に割り当てられます。
-
instance という ClassReference のインスタンスがインスタンス化されます。
-
参照によって
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));
}
}
}
public function getQualifiedClassName(value:*):String| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
オブジェクトの完全修飾クラス名を返します。
パラメータ
| value:* — 完全修飾クラス名が必要なオブジェクトです。このメソッドには、使用可能なすべての ActionScript 型、オブジェクトインスタンス、ユニットやクラスオブジェクトなどのプリミティブ型を含む任意の ActionScript 値を渡すことができます。 |
戻り値関連項目
public function getQualifiedSuperclassName(value:*):String| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
value パラメータで指定したオブジェクトの基本クラスの完全修飾クラス名を返します。この関数では describeType() よりも迅速に基本クラス名を取得できますが、describeType() で提供されるすべての情報が提供されるわけではありません。
この関数を使用してクラス名を取得した後、getDefinitionByName() 関数を使用してクラス名をクラス参照に変換できます。
注意:この関数はインスタンス階層に制限されています。一方、describeType() 関数は、value パラメータがデータ型の場合には、クラスオブジェクト階層を使用します。データ型に対して describeType() を呼び出すと、クラスオブジェクト階層に基づいてスーパークラスが返されます。スーパークラスでは、すべてのクラスオブジェクトが Class から継承されます。ただし、getQualifiedSuperclassName() 関数はクラスオブジェクト階層を無視し、より使い慣れたインスタンス階層に基づいてスーパークラスを返します。例えば、getQualifiedSuperclassName(String) を呼び出すと、技術的には String クラスオブジェクトは Class から継承されますが、Object が返されます。つまり、型のインスタンスと型自体のどちらを使用するかに関係なく、結果は同じです。
パラメータ
戻り値 | String —
完全修飾基本クラス名。存在しない場合は null が返されます。
|
関連項目
public function getTimer():int| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
Flash Player が初期化されてからの経過時間をミリ秒単位で返します。この時間は、相対時間の計算に使用されます。カレンダー日付(タイムスタンプ)については、Date オブジェクトを参照してください。
戻り値 | int — Flash Player が初期化された時点からのミリ秒数です。Player で SWF ファイルの再生を開始し、後で別の 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);
}
}
}
public function setInterval(closure:Function, delay:Number, ... arguments):uint| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ミリ秒単位で指定した間隔ごとに関数を実行します。
setInterval() メソッドを使用する代わりに、repeatCount パラメータを 0(タイマーを無限に繰り返す設定)にして、指定した間隔で Timer オブジェクトを作成することを検討してください。
clearInterval() メソッドを使用して setInterval() 呼び出しをキャンセルする場合は、setInterval() 呼び出しを変数(後で clearInterval() 関数で参照する)に割り当てます。clearInterval() 関数を呼び出して setInterval() 呼び出しをキャンセルしない場合は、タイムアウトクロージャ設定関数はガベージコレクションされません。
パラメータ
| closure:Function —
実行する関数の名前です。引用符や括弧を使用しないでください。また、呼び出す関数にパラメータを指定しないでください。例えば、functionName を使用して、functionName() や functionName(param) は使用しないでください。
|
| |
| delay:Number — ミリ秒単位の間隔です。 |
| |
| ... arguments — closure 関数に渡す引数のオプションのリストです。 |
戻り値 | uint —
時間設定されたプロセスに対する一意の数値識別子です。プロセスをキャンセルするには、この識別子を使用して clearInterval() メソッドを呼び出します。
|
関連項目
例
次の例では、
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]);
}
}
}
public function setTimeout(closure:Function, delay:Number, ... arguments):uint| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
ミリ秒単位で指定した遅延時間の経過後に、指定した関数を実行します。
このメソッドを使用する代わりに、repeatCount パラメータを 1(タイマーを 1 回のみ実行する設定)にして、指定した間隔で Timer オブジェクトを作成することを検討してください。
clearTimeout() メソッドを使用して setTimeout() 呼び出しをキャンセルする場合は、setTimeout() 呼び出しを変数(後で clearTimeout() 関数で参照する)に割り当てます。clearTimeout() 関数を呼び出して setTimeout() 呼び出しをキャンセルしない場合は、タイムアウトクロージャ設定関数はガベージコレクションされません。
パラメータ
| closure:Function —
実行する関数の名前です。引用符や括弧を使用しないでください。また、呼び出す関数にパラメータを指定しないでください。例えば、functionName を使用して、functionName() や functionName(param) は使用しないでください。
|
| |
| delay:Number — 関数が実行されるまでの遅延時間(ミリ秒単位)です。 |
| |
| ... arguments — closure 関数に渡す引数のオプションのリストです。 |
戻り値 | uint —
時間設定されたプロセスに対する一意の数値識別子です。プロセスをキャンセルするには、この識別子を使用して clearTimeout() メソッドを呼び出します。
|
関連項目
例
次の例では、
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]);
}
}
}
public function unescapeMultiByte(value:String):String| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 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" などのさまざまな結果が発生する可能性があります。
|
© 2004-2008 Adobe Systems Incorporated. All rights reserved.
Thu Jan 8 2009, 12:17 AM -08:00