Пакет | flash.net |
Класс | public class LocalConnection |
Наследование | LocalConnection ![]() ![]() |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
fscommand()
или JavaScript. Объекты LocalConnection могут обмениваться данными только с SWF-файлами, запущенными на том же самом клиентском компьютере, но при этом могут быть запущены в других приложениях (например, SWF-файл, запущенный в обозревателе, и SWF-файл, запущенный в проекторе).
Объекты LocalConnection, созданные в ActionScript 3.0, могут взаимодействовать с объектами LocalConnection, созданными в ActionScript 1.0 или 2.0. Обратное тоже верно: объекты LocalConnection, созданные в ActionScript 1.0 или 2.0, могут обмениваться данными с объектами LocalConnection, созданными в ActionScript 3.0. Проигрыватель Flash Player автоматически контролирует это взаимодействие между объектами LocalConnection разных версий.
Для того чтобы разобраться с применением объектов LocalConnection для реализации механизма взаимодействия между двумя SWF-файлами, рекомендуется определить команды, используемые в каждом файле. Один из SWF-файлов называется отправляющим — в этом файле содержится вызываемый метод. Отправляющий SWF-файл должен содержать объект LocalConnection и вызов метода connect()
. Второй SWF-файл называется принимающим. Этот файл и будет вызывать упомянутый метод. Принимающий SWF-файл должен содержать другой объект LocalConnection и вызов метода connect()
.
Применение send()
и connect()
зависит от размещения SWF-файлов: в том же домене, в разных доменах с предсказуемыми именами доменов или в разных доменах с непредсказуемыми или динамическими именами. В последующих абзацах объясняются три разные ситуации (с примерами кода для каждой из них).
Один и тот же домен. Это самый простой способ использования объекта LocalConnection, обеспечивающий обмен данными только между теми объектами LocalConnection, которые размещены в одном и том же домене, так как проигрыватель Flash Player по умолчанию разрешает взаимодействие внутри одного домена. При взаимодействии двух SWF-файлов из одного домена не требуется обеспечивать какие-либо специальные меры безопасности. Просто передайте одинаковое значение параметру connectionName
для методов connect()
и send()
:
Разные домены с предсказуемыми именами. При взаимодействии двух SWF-файлов из разных доменов необходимо разрешить обмен данными между двумя доменами путем вызова метода allowDomain()
. Также следует определить имя домена принимающего объекта LocalConnection как имя подключения в методе send()
:
Разные домены с непредсказуемыми именами. В некоторых случаях может потребоваться обеспечить большую междоменную мобильность SWF-файла с принимающим объектом LocalConnection. Для того чтобы сообщить проигрывателю Flash Player о том, что принимающий и отправляющий объекты LocalConnection находятся в разных доменах, но при этом не указывать имя домена в методе send()
, поставьте перед именем подключения символ подчеркивания (_) в вызовах connect()
и send()
. Чтобы обеспечить обмен данными между двумя доменами, вызовите метод allowDomain()
и укажите домены, с которых следует разрешить вызовы LocalConnection. Также, чтобы разрешить вызовы со всех доменов, следует передать аргумент с подстановочным знаком (*):
Объекты LocalConnection можно использовать для отправки и получения данных внутри отдельного SWF-файла, но такое применение не является стандартным.
Более подробную информацию о методах send()
и connect()
см. в обсуждении параметра connectionName
в разделах, посвященных LocalConnection.send()
и LocalConnection.connect()
. Также см. материалы по allowDomain()
и domain
.
См. также
Свойство | Определено | ||
---|---|---|---|
client : Object
Указывает объект, для которого вызываются методы ответного вызова. | LocalConnection | ||
![]() | constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | |
domain : String [только для чтения]
Строка, представляющая домен расположения текущего SWF-файла. | LocalConnection | ||
![]() | prototype : Object [статические]
Ссылка на модель объекта класса или функции. | Object |
Метод | Определено | ||
---|---|---|---|
Создает объект LocalConnection. | LocalConnection | ||
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события в объекте EventDispatcher, в результате чего прослушиватель будет получать уведомления о событиях. | EventDispatcher | |
Задает один или несколько доменов, которые могут направлять вызовы LocalConnection к данному экземпляру LocalConnection. | LocalConnection | ||
Задает один или несколько доменов, которые могут направлять вызовы LocalConnection к данному объекту LocalConnection. | LocalConnection | ||
Закрывает (отключает) объект LocalConnection. | LocalConnection | ||
Подготавливает объект LocalConnection к получению команд от команды send() (вызываемой отправляющим объектом LocalConnection). | LocalConnection | ||
![]() |
Передает событие в поток событий. | EventDispatcher | |
![]() |
Проверяет наличие у объекта EventDispatcher прослушивателей событий, которые зарегистрированы для получения уведомлений о событиях определенного типа. | EventDispatcher | |
![]() |
Показывает, определено ли заданное свойство для объекта. | Object | |
![]() |
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | |
![]() |
Показывает наличие заданного свойства и его перечисляемость. | Object | |
![]() |
Удаляет прослушиватель из объекта EventDispatcher. | EventDispatcher | |
Вызывает метод с именем methodName для подключения, открытого методом connect (connectionName) (принимающий объект LocalConnection). | LocalConnection | ||
![]() |
Задает доступность динамического свойства для операций цикла. | Object | |
![]() |
Возвращает строковое представление заданного объекта. | Object | |
![]() |
Возвращает элементарное значение заданного объекта. | Object | |
![]() |
Проверяет, зарегистрирован ли прослушиватель событий в объекте EventDispatcher или в любом из его предков для получения уведомлений о событиях определенного типа. | EventDispatcher |
Событие | Сводка | Определено | ||
---|---|---|---|---|
![]() | [многоадресное событие] Отправляется, когда проигрыватель Flash Player перемещается в фокус операционной системы и становится активным. | EventDispatcher | ||
Отправляется, когда исключение создается асинхронным образом, то есть в коде, изначально имеющем асинхронную природу. | LocalConnection | |||
![]() | [многоадресное событие] Отправляется, когда проигрыватель Flash Player покидает фокус операционной системы и становится неактивным. | EventDispatcher | ||
Отправляется, если путем вызова метода LocalConnection.send() предпринимается попытка отправить данные в другую изолированную среду. | LocalConnection | |||
Отправляется, когда объект LocalConnection сообщает о своем состоянии. | LocalConnection |
client | свойство |
client:Object
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Указывает объект, для которого вызываются методы ответного вызова. Объект по умолчанию: this
(создаваемое локальное подключение). Если в свойстве client
указать другой объект, методы обратного вызова будут вызываться на этом другом объекте.
public function get client():Object
public function set client(value:Object):void
TypeError — В качестве свойства client должен быть указан ненулевой объект.
|
domain | свойство |
domain:String
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Строка, представляющая домен расположения текущего SWF-файла.
В возвращенной строке SWF-файлов, опубликованных для проигрывателя Flash Player 9 или более поздних версий, в точности указывается домен текущего SWF-файла, включая субдомены. Например, если SWF-файл размещен на сайте www.adobe.com, то данная команда возвращает значение "www.adobe.com"
.
Если текущим SWF-файлом является локальный файл, размещенный на клиентском компьютере, то данная команда возвращает значение localhost
.
Самые распространенные способы применения этого свойства: включить имя домена отправляющего объекта LocalConnection в качестве параметра метода, который будет вызываться в принимающем объекте LocalConnection, или использовать его с LocalConnection.allowDomain()
для принятия команд с указанного домена. Вполне возможно, что вам и не потребуется использовать данное свойство, если речь идет об установке взаимодействия только между объектами LocalConnection, которые размещены в одном домене.
public function get domain():String
См. также
LocalConnection | () | Конструктор |
public function LocalConnection()
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Создает объект LocalConnection. С помощью объектов LocalConnection можно установить обмен данными между различными SWF-файлами, запущенными на одном и том же клиентском компьютере.
См. также
allowDomain | () | метод |
public function allowDomain(... domains):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Задает один или несколько доменов, которые могут направлять вызовы LocalConnection к данному экземпляру LocalConnection.
Данный метод нельзя использовать в целях предоставления SWF-файлам, размещенным по незащищенным протоколам, доступа к SWF-файлам, размещенным с помощью защищенного протокола (HTTPS). Вместо этого используйте метод allowInsecureDomain()
.
Этот метод можно использовать для того, чтобы дочерний SWF-файл из другого домена мог осуществлять вызовы LocalConnection, направленные родительскому SWF-файлу, при этом не будет известен конечный домен, с которого будет обращаться дочерний SWF-файл. Это может случиться, например при использовании перенаправлений для балансировки нагрузки или серверов независимых производителей. В этой ситуации можно с помощью свойства url
, используемого с нагрузкой объекта LoaderInfo, получить домен для использования с методом allowDomain()
. Например, рассмотрим ситуацию использования объекта Loader для загрузки дочернего SWF-файла. Как только файл будет загружен, можно будет просмотреть свойство contentLoaderInfo.url
объекта Loader и извлечь домен из строки полного URL-адреса. При этом необходимо дождаться полной загрузки SWF-файла, так как свойство contentLoaderInfo.url
будет иметь свое конечное правильное значение только после завершения загрузки файла.
Также может возникнуть и противоположная ситуация: создан дочерний SWF-файл, которому необходимо принимать вызовы LocalConnection от родительского файла, но домен родительского объекта неизвестен. В этой ситуации реализация данного метода подразумевает следующую проверку: совпадает ли аргумент домена с доменом свойства loaderInfo.url
в загруженном SWF-файле. Здесь также необходимо извлечь домен из полного URL-адреса в свойстве loaderInfo.url
. В этой ситуации нет необходимости ждать загрузки родительского SWF-файла — он уже будет загружен к тому времени, когда будет проходить загрузка дочернего файла.
При использовании данного метода необходимо продумать модель безопасности проигрывателя Flash Player: По умолчанию, объект LocalConnection связан с изолированной программной средой создавшего его SWF-файла, при этом вызовы объектов LocalConnection между доменов запрещены, если только вы не вызываете метод LocalConnection.allowDomain()
в принимающем SWF-файле.
Дополнительные сведения см. в следующих источниках.
Примечание. Метод allowDomain()
изменился по сравнению с тем, каким он был в ActionScript 1.0 и 2.0. В этих ранних версиях allowDomain
представлял собой реализуемый метод обратного вызова. В ActionScript 3.0 allowDomain()
является встроенным методом вызываемого LocalConnection. После этого изменения allowDomain()
функционирует практически так же, как и flash.system.Security.allowDomain()
.
Параметры
... domains — Одна или несколько строк, называющих домены, с которых необходимо разрешить вызовы LocalConnection. Данный параметр имеет два особых случая:
|
ArgumentError — Все указанные параметры должны быть ненулевыми строками.
|
См. также
allowInsecureDomain | () | метод |
public function allowInsecureDomain(... domains):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Задает один или несколько доменов, которые могут направлять вызовы LocalConnection к данному объекту LocalConnection.
Метод allowInsecureDomain()
функционирует так же, как и allowDomain()
, за исключением того, что метод allowInsecureDomain()
дополнительно разрешает SWF-файлам, поступившим не по протоколу HTTPS, отправлять вызовы LocalConnection на SWF-файлы, полученные по протоколу HTTPS. Это различие имеет значение только в том случае, если метод allowInsecureDomain()
вызывается из SWF-файла, который был загружен по протоколу HTTPS. Метод allowInsecureDomain()
следует вызывать даже в том случае, если происходит пересечение границ HTTPS/HTTPS в рамках одного домена. По умолчанию вызовы LocalConnection, направленные от SWF-файлов, поступивших не по протоколу HTTPS, к SWF-файлам, загруженным с помощью протокола HTTPS, всегда запрещены даже в рамках одного и того домена.
Не рекомендуется вызывать метод allowInsecureDomain()
, так как он может нарушить безопасность, обеспечиваемую протоколом HTTPS. При загрузке SWF-файла по протоколу HTTPS у вас должна присутствовать обоснованная уверенность в том, что в процессе доставки по сети на данный SWF-файл не будет оказываться никакого вредного воздействия. Если вы позднее разрешите SWF-файлу, поступившему не по протоколу HTTPS, делать вызовы LocalConnection в отношении SWF-файла, загруженного с помощью HTTPS, то тем самым вы будете принимать вызовы от SWF-файла, который мог в процессе доставки подвергнуться изменениям. Это, как правило, требует особой осторожности, так как нельзя быть полностью уверенным в подлинности вызовов LocalConnection, поступающих от вашего SWF-файла по протоколу HTTPS.
По умолчанию SWF-файлы, размещенные с помощью протокола HTTPS, доступны только для любых других SWF-файлов, размещенных посредством того же протокола (HTTPS). Такая реализация позволяет сохранить целостность, обеспечиваемую протоколом HTTPS.
Не рекомендуется использовать этот метод для переназначения характеристик по умолчанию, так как это может ослабить систему защиты протокола HTTPS. Тем не менее, это может потребоваться, например, если вам необходимо разрешить HTTP-файлам, опубликованным для Flash Player 6 и более ранних версий, доступ к HTTPS-файлам, опубликованным для Flash Player 9 или более поздних версий.
Дополнительные сведения о безопасности см. в следующих ресурсах.
Параметры
... domains — Одна или несколько строк, называющих домены, с которых необходимо разрешить вызовы LocalConnection. Для данного параметра существуют два особых случая:
|
ArgumentError — Все указанные параметры должны быть ненулевыми строками.
|
См. также
close | () | метод |
public function close():void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Закрывает (отключает) объект LocalConnection. Запустите данную команду, если больше не требуется, чтобы объект принимал команды, например при необходимости инициировать команду connect()
с помощью того же самого параметра connectionName
в другом SWF-файле.
ArgumentError — Экземпляр LocalConnection не подключен, поэтому не может быть закрыт.
|
См. также
connect | () | метод |
public function connect(connectionName:String):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Подготавливает объект LocalConnection к получению команд от команды send()
(вызываемой отправляющим объектом LocalConnection). Используемый с этой командой объект называется принимающим объектом LocalConnection. Принимающий и отправляющий объекты должны запускаться с одного и того же клиентского компьютера.
Чтобы избежать состязания, определите методы, прикрепленные к принимающему объекту LocalConnection, до вызова данного метода, как показано в примере с классом LocalConnection.
По умолчанию проигрыватель Flash Player преобразует connectionName
в значение superdomain:connectionName
, в котором superdomain
— это супердомен SWF-файла, содержащего команду connect()
. Например, если SWF-файл, содержащий принимающий объект LocalConnection, размещается по адресу www.someDomain.com, то connectionName
преобразуется в someDomain.com:connectionName
. (Если SWF-файл размещается на клиентском компьютере, то параметру superdomain
присваивается значение localhost
.)
Вдобавок, по умолчанию проигрыватель Flash Player позволяет принимающему объекту LocalConnection принимать команды только от отправляющих объектов LocalConnection, имя подключения которых также преобразовывается в значение "
superdomain
:connectionName"
. Таким образом SWF-файлам, размещенным в одном домене, становится проще взаимодействовать друг с другом.
Если вы реализуете механизм взаимодействия только между SWF-файлами в рамках одного домена, укажите строку для connectionName
, которая не будет начинаться с символа подчеркивания (_) и не будет определять имя домена (например, "myDomain:connectionName"
). Используйте ту же самую строку в методе connect(connectionName)
.
При реализации механизма взаимодействия SWF-файлов в разных доменах определение строки для параметра connectionName
, в начале которой стоит символ подчеркивания (_), обеспечивает большую междоменную мобильность SWF-файла с принимающим объектом LocalConnection. Далее представлены два возможных варианта:
connectionName
не начинается с символа подчеркивания (_), проигрыватель Flash Player добавляет префикс с супердоменом и двоеточием (например, "myDomain:connectionName"
). Несмотря на то, что это гарантирует отсутствие конфликтов вашего подключения с подключениями под тем же именем, но из других доменов, любые отправляющие объекты LocalConnection должны указывать данный супердомен (например, "myDomain:connectionName"
). Если SWF-файл с принимающим объектом LocalConnection перемещается в другой домен, то проигрыватель изменяет префикс, чтобы отразить наличие нового супердомена (например, "anotherDomain:connectionName"
). Может потребоваться вручную отредактировать все отправляющие объекты LocalConnection так, чтобы они указывали на новый супердомен.connectionName
начинается с символа подчеркивания (например, "_connectionName"
), то проигрыватель Flash Player не добавляет префикс в эту строку. Это означает, что принимающий и отправляющий объекты LocalConnection используют идентичные строки для параметра connectionName
. Если с помощью allowDomain()
принимающий объект указывает, что будут приниматься подключения с любого домена, то SWF-файл с принимающим объектом LocalConnection может быть перемещен в другой домен без изменения каких-либо отправляющих объектов LocalConnection.Дополнительные сведения см. в обзоре класса и обсуждении параметра connectionName
в методеsend()
, а также в материалах по allowDomain()
и domain
.
Примечание. Двоеточие используется как специальный символ для отделения супердомена от строки connectionName
. Строка для параметра connectionName
, содержащая двоеточие, является недопустимой.
При использовании данного метода необходимо продумать модель безопасности проигрывателя Flash Player: По умолчанию, объект LocalConnection связан с изолированной программной средой создавшего его SWF-файла, при этом вызовы объектов LocalConnection между доменов запрещены, если только вы не вызываете метод LocalConnection.allowDomain()
в принимающем SWF-файле. Можно запретить использование SWF-файлом этого метода путем установки параметра allowNetworking
для тегов object
и embed
на странице HTML, содержащей SWF-содержимое.
Дополнительные сведения см. в следующих источниках.
Параметры
connectionName:String — Строка, которая соответствует имени подключения, указанному в команде connect() , которой требуется взаимодействие с принимающим объектом LocalConnection.
|
TypeError — Параметру connectionName следует передавать ненулевое значение.
| |
ArgumentError — Данная ошибка может возникнуть по трем причинам: 1) Параметру connectionName было передано нулевое значение строки. Передайте ненулевое значение. 2) Значение, переданное параметру connectionName , содержало двоеточие (:). Двоеточие используется как специальный символ для отделения супердомена от строки connectionName в методе send() , а не в методе connect() . 3) Экземпляр LocalConnection уже подключен.
|
См. также
send | () | метод |
public function send(connectionName:String, methodName:String, ... arguments):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Вызывает метод с именем methodName
для подключения, открытого методом connect (
connectionName
)
(принимающий объект LocalConnection). Используемый с данной программой объект называется sending LocalConnection. SWF-файлы, содержащие отправляющие и принимающие объекты, должны запускаться на одном и том же клиентском компьютере.
Объем данных, которые можно передать как параметры для этой команды, ограничен 40 килобайтами. Если при наличии правильного синтаксиса метод send()
отображает ошибку ArgumentError
, попробуйте разделить запросы send()
на несколько команд (объем каждой не должен превышать 40 КБ).
Как было сказано в разделе о методе connect()
, по умолчанию проигрыватель Flash Player добавляет параметру connectionName
текущий супердомен. При реализации механизма обмена данными между разными доменами необходимо определить параметр connectionName
как в отправляющем, так и в принимающем объекте LocalConnection так, чтобы проигрыватель Flash не добавлял к параметру connectionName
текущий супердомен. Это можно выполнить одним из следующих способов:
connectionName
отправляющих и принимающих объектов LocalConnection. С помощью метода LocalConnection.allowDomain()
укажите в SWF-файле, содержащем получающий объект, что будут приниматься подключения с любого домена. Данная реализация позволяет хранить отправляющие и получающие SWF-файлы в любом домене. connectionName
в отправляющем объекте LocalConnection — например myDomain.com:myConnectionName
. В принимающем объекте с помощью метода LocalConnection.allowDomain()
укажите, что подключения из указанного супердомена будут приняты (в данном случае, myDomain.com) или что будут приняты подключения из любого домена.Примечание. Не следует указывать супердомен в параметре connectionName
принимающего объекта LocalConnection — это можно делать только в отправляющем объекте LocalConnection.
При использовании данного метода необходимо продумать модель безопасности проигрывателя Flash Player: По умолчанию, объект LocalConnection связан с изолированной программной средой создавшего его SWF-файла, при этом вызовы объектов LocalConnection между доменов запрещены, если только вы не вызываете метод LocalConnection.allowDomain()
в принимающем SWF-файле. Можно запретить использование SWF-файлом этого метода путем установки параметра allowNetworking
для тегов object
и embed
на странице HTML, содержащей SWF-содержимое.
Дополнительные сведения см. в следующих источниках.
Параметры
connectionName:String — Соответствует имени подключения, указанному в команде connect() , которой требуется взаимодействие с отправляющим объектом LocalConnection.
| |
methodName:String — Имя метода, вызываемого в принимающем объекте LocalConnection. Следующие имена методов приводят к сбою команды: send , connect , close , allowDomain , allowInsecureDomain , client и domain .
| |
... arguments — Дополнительные необязательные параметры, передаваемые указанному методу.
|
securityError: — Метод LocalConnection.send() произвел попытку взаимодействия с SWF-файлом из изолированной программной среды, доступ к которой вызывающий код не имеет. Эту проблему можно решить в реализации LocalConnection.allowDomain() на принимающей стороне. | |
status: — Если свойство level имеет значение status , то вызов был успешным. Значение error свидетельствует о сбое вызова. Возможен сбой вызова, если принимающий SWF-файл отвергнет подключение. |
TypeError — Значение connectionName или methodName — нулевое. Установите для данных параметров ненулевые значения.
| |
ArgumentError — Данная ошибка может возникнуть по одной из следующих причин: 1) В качестве значения connectionName или methodName выступает пустая строка. Передайте для этих параметров допустимые строки. 2) Метод, указанный в параметре methodName , является ограниченным. 3) Слишком большой размер отправленного сериализованного сообщения (свыше 40 КБ).
|
См. также
asyncError | Событие |
flash.events.AsyncErrorEvent
flash.events.AsyncErrorEvent.ASYNC_ERROR
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется, когда исключение создается асинхронным образом, то есть в коде, изначально имеющем асинхронную природу.
КонстантаAsyncErrorEvent.ASYNC_ERROR
определяет значение свойства type
объекта события asyncError
.
Данное событие имеет следующие свойства.
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; нет поведения по умолчанию для отмены. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Объект, испытывающий сбой сетевой операции. |
error | Ошибка, запускаемая событием. |
securityError | Событие |
flash.events.SecurityErrorEvent
flash.events.SecurityErrorEvent.SECURITY_ERROR
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется, если путем вызова метода LocalConnection.send()
предпринимается попытка отправить данные в другую изолированную среду.
SecurityErrorEvent.SECURITY_ERROR
определяет значение свойства type
для объекта события securityError
.
Данное событие имеет следующие свойства.
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; нет поведения по умолчанию для отмены. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Сетевой объект, сообщающий об ошибке безопасности. |
text | Текст, отображаемый в качестве сообщения об ошибке. |
См. также
status | Событие |
flash.events.StatusEvent
flash.events.StatusEvent.STATUS
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется, когда объект LocalConnection сообщает о своем состоянии. При успешном вызове LocalConnection.send()
свойство level
объекта события status
получает значение status
. В противном случае свойство level
имеет значение error
. Если принимающий SWF-файл отказывает в подключении, сбой вызова может произойти без оповещения отправляющего SWF-файла.
type
для объекта события Status
.
Данное событие имеет следующие свойства.
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; нет поведения по умолчанию для отмены. |
code | Описание состояния объекта. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
level | Категория сообщения, например "состояние" , "предупреждение" или "ошибка" . |
target | Объект, сообщающий свое состояние. |
См. также
В SWF-файле LocalConnectionSenderExample создается экземпляр LocalConnection. При нажатии на кнопку с помощью метода call()
вызывается метод с именем lcHandler
в SWF-файле с именем подключения myConnection, при этом в качестве параметра передается содержимое TextField.
В SWF-файле LocalConnectionReceiverExample создается экземпляр LocalConnection, а затем с помощью вызванного метода connect()
данный SWF-файл определяется как получатель сообщений, адресованных подключению myConnection. Вдобавок, в данный класс входит публичный метод lcHandler()
, который вызывается SWF-файлом LocalConnectionSenderExample. При вызове этого метода текст, переданный в качестве параметра, прикрепляется к полю TextField в компоненте Stage.
Примечание. Чтобы протестировать этот пример, необходимо одновременно загрузить на одном компьютере оба SWF-файла.
// Code in LocalConnectionSenderExample.as package { import flash.display.Sprite; import flash.events.MouseEvent; import flash.net.LocalConnection; import flash.text.TextField; import flash.text.TextFieldType; import flash.events.StatusEvent; import flash.text.TextFieldAutoSize; public class LocalConnectionSenderExample extends Sprite { private var conn:LocalConnection; // UI elements private var messageLabel:TextField; private var message:TextField; private var sendBtn:Sprite; public function LocalConnectionSenderExample() { buildUI(); sendBtn.addEventListener(MouseEvent.CLICK, sendMessage); conn = new LocalConnection(); conn.addEventListener(StatusEvent.STATUS, onStatus); } private function sendMessage(event:MouseEvent):void { conn.send("myConnection", "lcHandler", message.text); } private function onStatus(event:StatusEvent):void { switch (event.level) { case "status": trace("LocalConnection.send() succeeded"); break; case "error": trace("LocalConnection.send() failed"); break; } } private function buildUI():void { const hPadding:uint = 5; // messageLabel messageLabel = new TextField(); messageLabel.x = 10; messageLabel.y = 10; messageLabel.text = "Text to send:"; messageLabel.autoSize = TextFieldAutoSize.LEFT; addChild(messageLabel); // message message = new TextField(); message.x = messageLabel.x + messageLabel.width + hPadding; message.y = 10; message.width = 120; message.height = 20; message.background = true; message.border = true; message.type = TextFieldType.INPUT; addChild(message); // sendBtn sendBtn = new Sprite(); sendBtn.x = message.x + message.width + hPadding; sendBtn.y = 10; var sendLbl:TextField = new TextField(); sendLbl.x = 1 + hPadding; sendLbl.y = 1; sendLbl.selectable = false; sendLbl.autoSize = TextFieldAutoSize.LEFT; sendLbl.text = "Send"; sendBtn.addChild(sendLbl); sendBtn.graphics.lineStyle(1); sendBtn.graphics.beginFill(0xcccccc); sendBtn.graphics.drawRoundRect(0, 0, (sendLbl.width + 2 + hPadding + hPadding), (sendLbl.height + 2), 5, 5); sendBtn.graphics.endFill(); addChild(sendBtn); } } }
// Code in LocalConnectionReceiverExample.as package { import flash.display.Sprite; import flash.net.LocalConnection; import flash.text.TextField; public class LocalConnectionReceiverExample extends Sprite { private var conn:LocalConnection; private var output:TextField; public function LocalConnectionReceiverExample() { buildUI(); conn = new LocalConnection(); conn.client = this; try { conn.connect("myConnection"); } catch (error:ArgumentError) { trace("Can't connect...the connection name is already being used by another SWF"); } } public function lcHandler(msg:String):void { output.appendText(msg + "\n"); } private function buildUI():void { output = new TextField(); output.background = true; output.border = true; output.wordWrap = true; addChild(output); } } }