Главная / Action Script 3

В пакете 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
  
setInterval(closure:Function, delay:Number, ... arguments):uint
Выполняет функцию с заданным интервалом (в миллисекундах).
flash.utils
  
setTimeout(closure:Function, delay:Number, ... arguments):uint
Выполняет указанную функцию с заданной задержкой (в миллисекундах).
flash.utils
  
Возвращает неизолированную копию входной строки, расшифрованную из системной кодовой страницы или UTF-8, в зависимости от значения System.useCodePage.
flash.utils
Сведения о функции
clearInterval()функция
public function clearInterval(id:uint):void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 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);    
            }
        }
    }
}
clearTimeout()функция 
public function clearTimeout(id:uint):void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 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.");
        }
    }
}
describeType()функция 
public function describeType(value:*):XML

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 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.
 isDynamictrue, если класс, определяющий объект ActionScript, является динамическим. В противном случае содержит значение false. Если объект ActionScript является объектом класса, значение равно true, поскольку класс Class является динамическим.
 isFinaltrue, если класс, определяющий объект ActionScript, является последним. В противном случае содержит значение false.
 isStatictrue, если объект 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Тип данных параметра.
 optionaltrue, если параметр является необязательным, в противном случае содержит значение 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());
        }
    }
}
escapeMultiByte()функция 
public function escapeMultiByte(value:String):String

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 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".
getDefinitionByName()функция 
public function getDefinitionByName(name:String):Object

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Возвращает ссылку на объект класса, заданного параметром name.

Параметры

name:String — Имя класса.

Возвращает
Object — Возвращает ссылку на объект класса, заданного параметром name.

Выдает
ReferenceError — Общедоступного определения с указанным именем не существует.

Пример

В следующем примере для создания оранжевого квадрата на сцене используется класс GetDefinitionByNameExample. Это можно сделать, выполнив следующие действия:
  1. Объявляются переменные для оранжевого цвета фона и размера в 80 пикселей, которые позже будут использованы при рисовании квадрата.
  2. В конструкторе классу Sprite назначается переменная ClassReference типа Class.
  3. Создается экземпляр объекта ClassReference с именем instance.
  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
Версии среды выполнения:  1.0 9

Возвращает полное имя класса для объекта.

Параметры

value:* — Объект, для которого требуется полное имя класса. Этому методу можно передать любое значение ActionScript, включая любые доступные типы, экземпляры объектов, примитивные типы (например, uint) и объекты классов ActionScript.

Возвращает
String — Строка, в которой содержится полное имя класса.

См. также

getQualifiedSuperclassName()функция 
public function getQualifiedSuperclassName(value:*):String

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Возвращает·полное имя класса для базового класса объекта, заданного параметром value. Эта функция обеспечивает более быстрый способ получения имени базового класса по сравнению с describeType(), но она не предоставляет сведения, которые передает функция describeType().

После получения имени класса с помощью этой функции имя класса можно преобразовать с помощью функции getDefinitionByName() в ссылку на класс.

Примечание. Эта функция ограничивается иерархиями экземпляра, а функция describeType() использует иерархии объекта класса, если параметр value является типом данных. Вызов функции describeType() по отношению к типу данных возвращает суперкласс на основе иерархии объекта класса, в которой все объекты класса унаследованы из класса Class. При этом функция getQualifiedSuperclassName() игнорирует иерархию объекта класса и возвращает суперкласс на основе более привычной иерархии экземпляра. Например, при вызове getQualifiedSuperclassName(String) возвращается Object, хотя технически объект класса String наследуется из класса Class. Другими словами, результаты совпадают независимо от использования экземпляра типа или самого типа.

Параметры

value:* — Любое значение.

Возвращает
String — Полное базовое имя класса или null, если такое имя отсутствует.

См. также

getTimer()функция 
public function getTimer():int

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 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);
        }
    }
}
setInterval()функция 
public function setInterval(closure:Function, delay:Number, ... arguments):uint

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 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]);
        }
    }
}
setTimeout()функция 
public function setTimeout(closure:Function, delay:Number, ... arguments):uint

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 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]);
        }
    }
}
unescapeMultiByte()функция 
public function unescapeMultiByte(value:String):String

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 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" или других ее видов, в зависимости от кодировки системы.