В пакете flash.utils содержится разнообразие функций уровня пакета для определения времени выполнения кода, получения сведений о классах и объектах, а также преобразования экранирующих символов Юникода.
Общедоступные методы
| Функция | Определено |
---|
| |
Отменяет заданный вызов метода setInterval(). | flash.utils |
| |
Отменяет заданный вызов метода setTimeout(). | flash.utils |
| |
Создает объект XML, описывающий объект ActionScript, который именуется как параметр метода. | flash.utils |
| |
Возвращает изолированную копию входной строки, зашифрованную с помощью UTF-8 или системной кодовой страницы, в зависимости от значения System.useCodePage. | flash.utils |
| |
Возвращает ссылку на объект класса, заданного параметром name. | flash.utils |
| |
Возвращает полное имя класса для объекта. | flash.utils |
| |
Возвращает полное имя класса для базового класса объекта, заданного параметром-значением. | flash.utils |
| |
Возвращает число миллисекунд с момента инициализации проигрывателя Flash Player и используется для подсчета относительного времени. | flash.utils |
| |
Выполняет функцию с заданным интервалом (в миллисекундах). | flash.utils |
| |
Выполняет указанную функцию с заданной задержкой (в миллисекундах). | flash.utils |
| |
Возвращает неизолированную копию входной строки, расшифрованную из системной кодовой страницы или UTF-8, в зависимости от значения System.useCodePage. | flash.utils |
public function clearInterval(id:uint):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отменяет заданный вызов метода setInterval()
.
Параметры
| id:uint — Идентификатор вызова setInterval() , который можно присвоить переменной, как показано ниже:
|
См. также
Пример В следующем примере используется метод
setInterval()
для создания интервала задержки, по истечении которого вызывается метод
myRepeatingFunction()
через повторяющиеся интервалы длительностью в одну секунду.
При каждом вызове метода myRepeatingFunction
увеличивается значение свойства counter
, и когда оно становится равным значению свойства stopCount
, вызывается метод clearInterval()
со свойством intervalId
, которое представляет собой идентификатор обращения к ранее созданному интервалу.
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() , который можно присвоить переменной, как показано ниже:
|
См. также
Пример В примере ниже метод
setTimeout()
используется для вызова другого метода через указанное время.
Создается цикл до миллиона. Если компьютер может обработать этот запрос быстрее, чем за одну секунду, 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 |
Создает объект XML, описывающий объект ActionScript, который именуется как параметр метода. В этом методе реализована концепция программирования отражение для языка ActionScript.
Если параметр value
является экземпляром типа, возвращаемый объект XML содержит все свойства экземпляра, имеющие этот тип, но не содержит статических свойств. Это условие можно проверить при анализе объекта XML посредством исследования значения атрибута isStatic
тега <type>
, который содержит значение false
, если параметр value
является экземпляром типа.
Чтобы получить статические свойства типа, передайте для параметра value
сам тип. Возвращаемый объект XML содержит не только статические свойства типа, но также все свойства его экземпляра. Свойства экземпляра вложены в тег под именем <factory>
, что позволяет отличить их от статических свойств. В этом случае атрибут isStatic
тега <type>
содержит значение true
.
Примечание. Если требуется только пройти по иерархии наследования объекта, а остальные сведения, предоставляемые функцией describeType()
не требуются, вместо последней используйте функции getQualifiedClassName()
и getQualifiedSuperclassName()
.
В следующей таблице описываются некоторые теги и атрибуты объекта XML, создаваемого методом describeType()
(все возвращенные имена классов и интерфейсов имеют полностью определенный формат).
Тег | Атрибут | Описание |
---|
<type> | | Корневой тег объекта XML. |
| name | Имя типа данных объекта ActionScript. |
| base | Непосредственный суперкласс класса, определяющего объект ActionScript. Если объект ActionScript является объектом класса, значение равно Class . |
| isDynamic | true , если класс, определяющий объект ActionScript, является динамическим. В противном случае содержит значение false . Если объект ActionScript является объектом класса, значение равно true , поскольку класс Class является динамическим. |
| isFinal | true , если класс, определяющий объект ActionScript, является последним. В противном случае содержит значение false . |
| isStatic | true , если объект ActionScript является объектом класса или функцией конструктора. В противном случае содержит значение false . Этот атрибут называется isStatic , потому что если он содержит значение true , любые теги, не вложенные в тег factory являются статическими. |
<extendsClass> | | Для каждого суперкласса класса, определяющего объект ActionScript, существует отдельный тег extendsClass . |
| type | Имя суперкласса, который расширяется классом, определяющим объект ActionScript. |
<implementsInterface> | | Для каждого интерфейса, который реализован классом, определяющим объект ActionScript, или любым из его суперклассов, существует отдельный тег implementsInterface . |
| type | Имя интерфейса, который реализуется классом, определяющим объект ActionScript. |
<accessor> | | 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, включая любые доступные типы, экземпляры объектов, примитивные типы (например, 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());
}
}
}
public function escapeMultiByte(value:String):String
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возвращает изолированную копию входной строки, зашифрованную с помощью UTF-8 или системной кодовой страницы, в зависимости от значения System.useCodePage. Использование параметра System.useCodePage позволяет проигрывателю получать доступ к содержимому, использующему локальные кодировки, но только в системах, использующих такие кодировки. Например, данные на японском языке, закодированные как Shift-JIS
, будут правильно преобразованы только в операционной системе, в которой по умолчанию используется японская кодировка.
Параметры
| value:String — Строка, которую необходимо преобразовать с использованием управляющих символов.
|
Возвращает | String — Копия входной строки с управляющими символами. Если параметр System.useCodePage содержит значение true , строка с управляющими символами кодируется в системной кодировке. Если параметр System.useCodePage содержит значение false , строка с управляющими символами кодируется в UTF-8. Например, если параметр System.useCodePage содержит значение false , входная строка "Crüe" будет передана как "Cr%C3%BCe" во всех системах. Если параметр system.useCodePage содержит значение true , и в системе используется кодовая страница "Latin", "Crüe" будет передано как "Cr%FCe". Если в системе используется кодировка, отличная от "Latin", в которой отсутствует буква "ü", результатом, вероятно, будет строка "Cr?e".
|
public function getDefinitionByName(name:String):Object
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возвращает ссылку на объект класса, заданного параметром name
.
Параметры
Возвращает | Object — Возвращает ссылку на объект класса, заданного параметром name .
|
Выдает | ReferenceError — Общедоступного определения с указанным именем не существует.
|
Пример В следующем примере для создания оранжевого квадрата на сцене используется класс
GetDefinitionByNameExample
. Это можно сделать, выполнив следующие действия:
- Объявляются переменные для оранжевого цвета фона и размера в 80 пикселей, которые позже будут использованы при рисовании квадрата.
- В конструкторе классу Sprite назначается переменная
ClassReference
типа Class. - Создается экземпляр объекта ClassReference с именем
instance
. - Поскольку
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, включая любые доступные типы, экземпляры объектов, примитивные типы (например, uint) и объекты классов ActionScript.
|
Возвращает | String — Строка, в которой содержится полное имя класса.
|
См. также
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)
возвращается Object
, хотя технически объект класса String наследуется из класса Class. Другими словами, результаты совпадают независимо от использования экземпляра типа или самого типа.
Параметры
| value:* — Любое значение.
|
Возвращает | String — Полное базовое имя класса или null , если такое имя отсутствует.
|
См. также
public function getTimer():int
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возвращает число миллисекунд с момента инициализации проигрывателя Flash Player и используется для подсчета относительного времени. По поводу даты календаря (метки времени) см. объект Date.
Возвращает | int — Количество миллисекунд с момента инициализации проигрывателя Flash Player. Если проигрыватель начинает воспроизведение одного SWF-файла, а после загружается другой SWF-файл, возвращается значение для момента загрузки первого SWF-файла.
|
См. также
Пример В следующем примере для получения и вывода количества миллисекунд, которое прошло с момента начала воспроизведения проигрывателем Flash Player, используется класс
GetTimerExample
.
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()
рекомендуется создавать объект Timer с заданным интервалом, в котором в качестве параметра repeatCount
используется значение 0 (то есть таймер выполняется бесконечно).
Если предполагается использование метода clearInterval()
для отмены вызова setInterval()
, метод setInterval()
обязательно должен быть назначен переменной (к которой в последующем будет обращаться метод setInterval()
), как показано ниже:
Параметры
| closure:Function — Имя выполняемой функции. Не включайте кавычки или скобки, а также не указывайте параметры вызываемой функции. Например, следует использовать functionName , а не functionName() или functionName(param) .
|
|
| delay:Number — Интервал в миллисекундах.
|
|
| ... arguments — Необязательный список аргументов, передаваемых выполняемой функции.
|
Возвращает | uint — Уникальный числовой идентификатор отложенного процесса.
|
См. также
Пример В следующем примере используется метод
setInterval()
для создания интервала задержки, по истечении которого вызывается метод
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 |
Выполняет указанную функцию с заданной задержкой (в миллисекундах).
Вместо использования этого метода рекомендуется создавать объект Timer с заданным интервалом, в котором в качестве параметра repeatCount
используется значение 1 (то есть таймер выполняется один раз).
Если предполагается использование метода clearTimeout()
для отмены вызова setTimeout()
, метод setTimeout()
обязательно должен быть назначен переменной (к которой в последующем будет обращаться метод clearTimeout()
).
Параметры
| closure:Function — Имя выполняемой функции. Не включайте кавычки или скобки, а также не указывайте параметры вызываемой функции. Например, следует использовать functionName , а не functionName() или functionName(param) .
|
|
| delay:Number — Задержка (в миллисекундах) до выполнения функции.
|
|
| ... arguments — Необязательный список аргументов, передаваемых выполняемой функции.
|
Возвращает | 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]);
}
}
}
public function unescapeMultiByte(value:String):String
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возвращает неизолированную копию входной строки, расшифрованную из системной кодовой страницы или UTF-8, в зависимости от значения System.useCodePage. Использование параметра System.useCodePage позволяет проигрывателю получать доступ к содержимому, использующему локальные кодировки, но только в системах, использующих такие кодировки. Например, данные на японском языке, закодированные как Shift-JIS
, будут правильно преобразованы только в операционной системе, в которой по умолчанию используется японская кодировка.
Параметры
| value:String — Строка, управляющие символы которой требуется преобразовать.
|
Возвращает | String — Копия входной строки без управляющих символов. Если параметр System.useCodePage содержит значение true , строка с управляющими символами раскодируется из системной кодировки. Если параметр System.useCodePage содержит значение false , строка с управляющими символами раскодируется из UTF-8. Например, если входной является строка "Cr%C3%BCe", а параметр System.useCodePage содержит значение false , результатом будет "Crüe" во всех системах. Если параметр System.useCodePage содержит значение true , и входной является строка "Cr%C3%BCe", а в системе используется кодировка "Latin", результатом также будет "Crüe". В ходе преобразования управляющих символов строки "Cr%C3%BCe", когда параметр System.useCodePage содержит значение true , в различных системах будут получаться различные непредсказуемые результаты (например, "Crüe" в системе с кодировкой "Latin"). Аналогично, преобразование управляющих символов строки "Cr%FCe", когда параметр System.useCodePage содержит значение false , может привести к получению строки "Cre", "Cr?e" или других ее видов, в зависимости от кодировки системы.
|
© 2004-2008 Adobe Systems Incorporated. All rights reserved.
Wed Sep 24 2008, 07:58 AM -07:00