Пакетflash.net
Классpublic class LocalConnection
НаследованиеLocalConnection Inheritance EventDispatcher Inheritance Object

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

Класс LocalConnection позволяет создать объект LocalConnection, который может вызвать метод в другом объекте LocalConnection как в одном, так и в нескольких SWF-файлах. Локальные подключения обеспечивают подобное взаимодействие между SWF-файлами, не требующее использования 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.

Посмотреть примеры

См. также

flash.net.LocalConnection.send()
flash.net.LocalConnection.allowDomain()
flash.net.LocalConnection.domain


Общедоступные свойства
 СвойствоОпределено
  client : Object
Указывает объект, для которого вызываются методы ответного вызова.
LocalConnection
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  domain : String
[только для чтения] Строка, представляющая домен расположения текущего SWF-файла.
LocalConnection
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
Общедоступные методы
 МетодОпределено
  
Создает объект LocalConnection.
LocalConnection
 Inherited
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
  
connect(connectionName:String):void
Подготавливает объект LocalConnection к получению команд от команды send() (вызываемой отправляющим объектом LocalConnection).
LocalConnection
 Inherited
Передает событие в поток событий.
EventDispatcher
 Inherited
Проверяет наличие у объекта EventDispatcher прослушивателей событий, которые зарегистрированы для получения уведомлений о событиях определенного типа.
EventDispatcher
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Удаляет прослушиватель из объекта EventDispatcher.
EventDispatcher
  
send(connectionName:String, methodName:String, ... arguments):void
Вызывает метод с именем methodName для подключения, открытого методом connect (connectionName) (принимающий объект LocalConnection).
LocalConnection
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
 Inherited
Проверяет, зарегистрирован ли прослушиватель событий в объекте EventDispatcher или в любом из его предков для получения уведомлений о событиях определенного типа.
EventDispatcher
События
 Событие Сводка Определено
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player перемещается в фокус операционной системы и становится активным.EventDispatcher
  Отправляется, когда исключение создается асинхронным образом, то есть в коде, изначально имеющем асинхронную природу.LocalConnection
 Inherited[многоадресное событие] Отправляется, когда проигрыватель 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. Данный параметр имеет два особых случая:
  • Чтобы разрешить вызовы со всех доменов, можно указать подстановочный знак "*".
  • Определение строки localhost обеспечивает вызовы данного SWF-файла от локально установленных SWF-файлов. В проигрыватель Flash Player 8 были внесены ограничения в сфере безопасности локальных SWF-файлов. По умолчанию SWF-файл, которому разрешен доступ к Интернету, не может иметь доступ к локальной файловой системе. Если вы определите localhost, данный SWF-файл будет доступен любому локальному SWF-файлу.


Выдает
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. Для данного параметра существуют два особых случая:
  • Чтобы разрешить вызовы со всех доменов, можно указать подстановочный знак "*". Определение "*" не включает в себя локальные узлы.
  • Определение строки localhost обеспечивает вызовы данного SWF-файла от локально установленных SWF-файлов. В проигрыватель Flash Player 8 были внесены ограничения в сфере безопасности локальных SWF-файлов. SWF-файл, которому разрешен доступ к Интернету, не может иметь доступ к локальной файловой системе. Если вы определите localhost, данный SWF-файл будет доступен любому локальному SWF-файлу. Помните, что во время разработки вызывающий SWF-файл должен быть обозначен как файл из среды "local-with-networking".


Выдает
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 в методе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.

При использовании данного метода необходимо продумать модель безопасности проигрывателя 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:SecurityErrorEventМетод LocalConnection.send() произвел попытку взаимодействия с SWF-файлом из изолированной программной среды, доступ к которой вызывающий код не имеет. Эту проблему можно решить в реализации LocalConnection.allowDomain() на принимающей стороне.
 
status:StatusEvent — Если свойство level имеет значение status, то вызов был успешным. Значение error свидетельствует о сбое вызова. Возможен сбой вызова, если принимающий SWF-файл отвергнет подключение.

Выдает
TypeError — Значение connectionName или methodName — нулевое. Установите для данных параметров ненулевые значения.
 
ArgumentError — Данная ошибка может возникнуть по одной из следующих причин: 1) В качестве значения connectionName или methodName выступает пустая строка. Передайте для этих параметров допустимые строки. 2) Метод, указанный в параметре methodName, является ограниченным. 3) Слишком большой размер отправленного сериализованного сообщения (свыше 40 КБ).

См. также

Сведения о событии
asyncError Событие
Тип объекта события: flash.events.AsyncErrorEvent
свойство AsyncErrorEvent.type = flash.events.AsyncErrorEvent.ASYNC_ERROR

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

Отправляется, когда исключение создается асинхронным образом, то есть в коде, изначально имеющем асинхронную природу.

Константа AsyncErrorEvent.ASYNC_ERROR определяет значение свойства type объекта события asyncError.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetОбъект, испытывающий сбой сетевой операции.
errorОшибка, запускаемая событием.
securityError Событие  
Тип объекта события: flash.events.SecurityErrorEvent
свойство SecurityErrorEvent.type = flash.events.SecurityErrorEvent.SECURITY_ERROR

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

Отправляется, если путем вызова метода LocalConnection.send() предпринимается попытка отправить данные в другую изолированную среду.

Константа SecurityErrorEvent.SECURITY_ERROR определяет значение свойства type для объекта события securityError.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetСетевой объект, сообщающий об ошибке безопасности.
textТекст, отображаемый в качестве сообщения об ошибке.

См. также

status Событие  
Тип объекта события: flash.events.StatusEvent
свойство StatusEvent.type = 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.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
codeОписание состояния объекта.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
levelКатегория сообщения, например "состояние", "предупреждение" или "ошибка".
targetОбъект, сообщающий свое состояние.

См. также

Примеры Как пользоваться примерами
LocalConnectionSenderExample.as

Данный пример состоит из двух классов ActionScript, которые должны быть скомпилированы в два отдельных SWF-файла:

В 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);
        }
    }
}
LocalConnectionReceiverExample.as

// 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);
        }
    }
}