В пакете flash.utils содержатся различные функции уровня пакета для определения времени выполнения кода, получения сведений о классах и объектах, а также для преобразования экранирующих символов.
Функция | Определено | ||
---|---|---|---|
Отменяет указанный вызов метода setInterval(). | flash.utils | ||
Отменяет указанный вызов метода setTimeout(). | flash.utils | ||
Создает объект XML, описывающий объект ActionScript, который именуется как параметр метода. | flash.utils | ||
Возвращает изолированную копию входной строки, зашифрованную с помощью UTF-8 или системной кодовой страницы, в зависимости от значения System.useCodePage. | flash.utils | ||
Возвращает ссылку на объект класса, заданного параметром name. | flash.utils | ||
Возвращает полное имя класса для объекта. | flash.utils | ||
Возвращает полное имя класса для базового класса объекта, заданного параметром value. | flash.utils | ||
Используется для вычисления относительного времени. | flash.utils | ||
Выполняет функцию с заданным интервалом (в миллисекундах). | flash.utils | ||
Выполняет указанную функцию с определенной задержкой (в миллисекундах). | flash.utils | ||
Возвращает неэкранированную копию входной строки, расшифрованную из системной кодовой страницы или UTF-8, в зависимости от значения System.useCodePage. | flash.utils |
clearInterval | () | функция |
public function clearInterval(id:uint):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отменяет указанный вызов метода setInterval()
.
Параметры
id:uint — Идентификатор вызова setInterval() , можно присвоить переменной, как показано ниже:
|
Связанные элементы API
Пример ( Использование этого примера )
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 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отменяет указанный вызов метода setTimeout()
.
Параметры
id:uint — Идентификатор вызова setTimeout() , присваиваемый переменной, как показано ниже:
|
Связанные элементы API
Пример ( Использование этого примера )
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 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Создает объект 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 — это свойство, определяемое функциями получателя и установщика. | |
name | Имя средства доступа. | |
access | Права доступа к свойству. Возможные значения: readonly , writeonly и readwrite . | |
type | Тип данных свойства. | |
declaredBy | Класс, содержащий связанные функции получателя или установщика. | |
<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, содержащий сведения об объекте, переданном в качестве параметра. В нем содержатся следующие сведения об объекте:
Примечание. |
Связанные элементы API
Пример ( Использование этого примера )
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 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Возвращает изолированную копию входной строки, зашифрованную с помощью 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». В ходе преобразования управляющих символов строки «Cr%C3%BCe», когда параметр System.useCodePage содержит значение true , в различных системах будут получаться различные непредсказуемые результаты (например, «Crüe» в системе с кодировкой «Latin»). Аналогично, преобразование управляющих символов строки «Cr%FCe», когда параметр System.useCodePage содержит значение false , может привести к получению строки «Cre», «Cr?e» или других ее видов, в зависимости от кодировки системы.
|
getDefinitionByName | () | функция |
public function getDefinitionByName(name:String):Object
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Возвращает ссылку на объект класса, заданного параметром name
.
Параметры
name:String — Имя класса.
|
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)); } } }
getQualifiedClassName | () | функция |
public function getQualifiedClassName(value:*):String
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Возвращает полное имя класса для объекта.
Параметры
value:* — Объект, для которого требуется полное имя класса. Этому методу можно передать любое значение ActionScript, включая любые доступные типы, экземпляры объектов, примитивные типы (например, uint) и объекты классов ActionScript.
|
String — Строка, в которой содержится полное имя класса.
|
Связанные элементы API
getQualifiedSuperclassName | () | функция |
public function getQualifiedSuperclassName(value:*):String
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Возвращает полное имя класса для базового класса объекта, заданного параметром value
. Эта функция обеспечивает более быстрый способ получения имени базового класса по сравнению с describeType()
, но она не предоставляет сведения, которые передает функция describeType()
.
После получения имени класса с помощью этой функции имя класса можно преобразовать с помощью функции getDefinitionByName()
в ссылку на класс.
Примечание. Эта функция ограничивается иерархиями экземпляра, а функция describeType()
использует иерархии объекта класса, если параметр value
является типом данных. Вызов функции describeType()
по отношению к типу данных возвращает суперкласс на основе иерархии объекта класса, в которой все объекты класса унаследованы из класса Class. При этом функция getQualifiedSuperclassName()
игнорирует иерархию объекта класса и возвращает суперкласс на основе более привычной иерархии экземпляра. Например, при вызове getQualifiedSuperclassName(String)
возвращается Object
, хотя технически объект класса String наследуется из класса Class. Другими словами, результаты совпадают независимо от использования экземпляра типа или самого типа.
Параметры
value:* — Любое значение.
|
String — Полное базовое имя класса или null , если такое имя отсутствует.
|
Связанные элементы API
getTimer | () | функция |
public function getTimer():int
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Используется для вычисления относительного времени. Когда среда выполнения Flash обрабатывает ActionScript 3.0, этот метод возвращает число миллисекунд, прошедшее с момента запуска виртуальной машины среды выполнения Flash для ActionScript 3.0 (AVM2). Когда среда выполнения Flash обрабатывает ActionScript 2.0, этот метод возвращает число миллисекунд, прошедшее с момента инициализации среды выполнения Flash. Среды выполнения Flash использует две виртуальных машины для обработки ActionScript. AVM1 — это виртуальная машина ActionScript, используем для обработки ActionScript 1.0 и 2.0. AVM2 — это виртуальная машина ActionScript, используемая для обработки ActionScript 3.0. Метод getTimer()
ведет себя по-разному для AVM1 и AVM2.
Дату календаря (метку времени) см. в объекте Date.
Возвращаетint — Число миллисекунд, прошедшее с момента инициализации среды выполнения (при обработке ActionScript 2.0) или с момента запуска виртуальной машины (при обработке ActionScript 3.0). Если среда выполнения начинает воспроизведение одного SWF-файла, а после загружается другой SWF-файл, возвращается значение для момента загрузки первого SWF-файла.
|
Связанные элементы API
Пример ( Использование этого примера )
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 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Выполняет функцию с заданным интервалом (в миллисекундах).
Вместо использования метода setInterval()
рекомендуется создавать объект Timer с заданным интервалом, в котором в качестве параметра repeatCount
используется значение 0 (то есть таймер выполняется бесконечно).
Если предполагается использование метода clearInterval()
для отмены вызова setInterval()
, метод setInterval()
обязательно должен быть назначен переменной (к которой в последующем будет обращаться функция clearInterval()
). Если не вызвать функцию clearInterval()
для отмены вызова setInterval()
, объект, содержащий функцию очистки заданного интервала, не будет удален.
Параметры
closure:Function — Имя выполняемой функции. Не включайте кавычки или скобки, а также не указывайте параметры вызываемой функции. Например, следует использовать functionName , а не functionName() или functionName(param) .
| |
delay:Number — Интервал в миллисекундах.
| |
... arguments — Необязательный список аргументов, передаваемых выполняемой функции.
|
uint — Уникальный числовой идентификатор отложенного процесса. Используйте этот идентификатор для отмены процесса, вызвав метод clearInterval() .
|
Связанные элементы API
Пример ( Использование этого примера )
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 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Выполняет указанную функцию с определенной задержкой (в миллисекундах).
Вместо использования этого метода рекомендуется создавать объект Timer с указанным интервалом, в котором в качестве параметра repeatCount
используется значение 1 (то есть таймер запускается один раз).
Если предполагается использование метода clearTimeout()
для отмены вызова setTimeout()
, метод setTimeout()
обязательно должен быть присвоен переменной (к которой в последующем будет обращаться функция clearTimeout()
). Если не вызвать функцию clearTimeout()
для отмены вызова setTimeout()
, объект, содержащий функцию очистки заданного интервала, не будет удален.
Параметры
closure:Function — Имя выполняемой функции. Не включайте кавычки или скобки, а также не указывайте параметры вызываемой функции. Например, следует использовать functionName , а не functionName() или functionName(param) .
| |
delay:Number — Задержка (в миллисекундах) до выполнения функции.
| |
... arguments — Необязательный список аргументов, передаваемых выполняемой функции.
|
uint — Уникальный числовой идентификатор отложенного процесса. Используйте этот идентификатор для отмены процесса, вызвав метод clearTimeout() .
|
Связанные элементы API
Пример ( Использование этого примера )
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 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Возвращает неизолированную копию входной строки, расшифрованную из системной кодовой страницы или UTF-8, в зависимости от значения System.useCodePage. Использование параметра System.useCodePage позволяет среде выполнения получать доступ к содержимому, использующему локальные кодировки, но только в системах, использующих такие кодировки. Например, данные на японском языке, закодированные как Shift-JIS
, будут правильно преобразованы только в операционной системе, в которой по умолчанию используется японская кодировка.
Параметры
value:String — Строка, управляющие символы которой требуется преобразовать.
|
String — Копия входной строки без управляющих символов. Если параметр System.useCodePage содержит значение true , строка с управляющими символами декодируется из системной кодировки. Если параметр System.useCodePage содержит значение false , строка с управляющими символами декодируется из UTF-8. Например, если входной является строка «Crüe», а параметр System.useCodePage содержит значение false , то результатом будет «Crüe» во всех системах. Если параметр System.useCodePage содержит значение true , и входной является строка «Cr%FCe», а в системе используется кодировка Latin, результатом также будет «CrA?e». В ходе преобразования управляющих символов строки «Cr%C3%BCe», когда параметр System.useCodePage содержит значение true , в различных системах будут получаться различные непредсказуемые результаты (например, «CrAA?e» в системе с кодировкой Latin). Аналогично, преобразование управляющих символов строки «Cr%FCe», когда параметр System.useCodePage содержит значение false , может привести к получению строки «Cre», «Cr?e» или других ее видов, в зависимости от кодировки системы.
|
Tue Jun 12 2018, 11:50 AM Z