Главная / Action Script 3

В пакете flash.net package содержатся функции уровня пакета для открытия в обозревателе нового окна, отправки URL-запроса серверу, а также функции для работы с псевдонимами классов.
Общедоступные методы
 ФункцияОпределено
  
Выполняет поиск класса, у которого ранее был псевдоним, зарегистрированный через вызов метода registerClassAlias().
flash.net
  
navigateToURL(request:URLRequest, window:String = null):void
Открывает или заменяет окно в приложении, которое содержит контейнер Flash Player (обычно обозреватель ).
flash.net
  
registerClassAlias(aliasName:String, classObject:Class):void
Сохраняет класс (тип) объекта при шифровании объекта в формат AMF.
flash.net
  
Отправляет URL-запрос на сервер, но игнорирует ответ.
flash.net
Сведения о функции
getClassByAlias()функция
public function getClassByAlias(aliasName:String):Class

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

Выполняет поиск класса, у которого ранее был псевдоним, зарегистрированный через вызов метода registerClassAlias().

Данный метод не взаимодействует с методом flash.utils.getDefinitionByName().

Параметры

aliasName:String — Искомый псевдоним.

Возвращает
Class — Класс, связанный с данным псевдонимом. Если не будет найдено, будет создано исключение.

Выдает
ReferenceError — Псевдоним не был зарегистрирован.

См. также

navigateToURL()функция 
public function navigateToURL(request:URLRequest, window:String = null):void

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

Открывает или заменяет окно в приложении, которое содержит контейнер Flash Player (обычно обозреватель ).

Примечание. Для локального содержимого, запущенного в обозревателе, вызовы метода navigateToURL(), указывающие псевдо-протокол javascript: (с помощью объекта URLRequest, переданного в качестве первого параметра), допустимы только в том случае, если SWF-файл и рассматриваемая веб-страница (при наличии таковой) находятся в локальной доверенной изолированной среде. В некоторых обозревателях не поддерживается применение протокола javascript с методом navigateToURL(). Вместо этого следует использовать метод call() API-интерфейса ExternalInterface, чтобы вызвать методы JavaScript в рамках закрытой HTML-страницы.

Нельзя подключаться к общепринятым зарезервированным портам. Полный список заблокированных портов см. в разделе "Ограничение сетевых API-интерфейсов" в главе "Безопасность" книги Программирование на ActionScript 3.0.

В приложении Flash Player 10 и более поздней версии, запущенном в обозревателе, при использовании этого метода в программных средствах открытие всплывающего окна может не выполняться. Различные обозреватели (и конфигурации обозревателей) могут блокировать всплывающие окна в любое время; невозможно гарантировать, что какое-либо всплывающее окно будет отображаться. Однако для повышения вероятности открытия всплывающего окна используйте этот метод только в коде, который выполняется в качестве непосредственного результата действия пользователя (например, в обработчике событий для события щелчка мышью или нажатия клавиши).

В приложении Flash Player 10 и более поздней версии при использовании типа содержимого multipart (например, multipart/form-data), в котором содержится отправка (обозначена параметром filename в заголовке content-disposition в теле оператора POST), к операции POST применяются правила безопасности для отправок:

Кроме того, все объекты multipart Content-Type должны иметь допустимый синтаксис (в соответствии со стандартами RFC2046). Если синтаксис является недопустимым, к операции POST применяются правила безопасности, действующие для отправок.

Дополнительные сведения о безопасности см. в следующих ресурсах.

Параметры

request:URLRequest — Объект URLRequest, указывающий URL-адрес, на который необходимо перейти.
 
window:String (default = null) — Окно обозревателя или HTML-фрейм, в котором будет отображаться документ, указанный в параметре request. Вы можете ввести имя определенного окна или использовать одно из следующих значений:
  • _self указывает текущий фрейм в текущем окне.
  • _blank определяет новое окно.
  • _parent указывает родительский объект текущего фрейма.
  • _top указывает фрейм самого верхнего уровня в текущем окне.

Если не будет указано значение для данного параметра, то будет создано новое пустое окно. В автономном проигрывателе можно указать новое окно (_blank) или определенное окно с именем. Другие значения не применяются.

Примечание. Когда код в SWF-файле, запущенном в локальной изолированной программной среде для файловой системы, вызывает функцию navigateToURL() и указывает специальное имя окна для параметра window, имя окна преобразуется в случайное имя. Имя представлено в формате _flashXXXXXXXX, где каждый X представляет случайную шестнадцатеричную цифру. Если в рамках одного сеанса (до закрытия используемого окна обозревателя) вы снова вызовете эту функцию и определите то же самое имя для параметра window, будет использована та же случайно выбранная строка.


Выдает
IOError — Значением свойства digest объекта request не является null. Свойство digest объекта URLRequest следует задавать только при вызове метода URLLoader.load() во время загрузки SWZ-файла (компонент платформы Adobe).
 
SecurityError — Данная ошибка отображается в следующих ситуациях:
  • Локальные ненадежные SWF-файлы могут быть изолированы от Интернета. Этой ситуации можно избежать, если переклассифицировать данный SWF-файл как локальный с сетевым подключением или доверенный.
  • Операция навигации произвела попытку оценить URL-псевдоадрес создания сценариев, но затронутый документ (HTML-документ в обозревателе) находится в изолированной программной среде, доступ к которой закрыт. Чтобы избежать этой ситуации, укажите allowScriptAccess=always в соответствующем документе.
  • Навигация по специальным окнам _self, _top или _parent невозможна, если ваш SWF-файл содержится на HTML-странице, у которой свойство allowScriptAccess имеет значение none или sameDomain, в то время как домены HTML-файла и SWF-файла не совпадают.
  • Навигация окна с нестандартным именем из SWF-файла, размещенного в локальной изолированной программной среде для файловой системы, запрещена.
  • Нельзя подключаться к общепринятым зарезервированным портам. Полный список заблокированных портов см. в разделе "Ограничение сетевых API-интерфейсов" в главе "Безопасность" книги Программирование на ActionScript 3.0.
 
Error — Если вызов метода не выполняется в ответ на действие пользователя, такое как событие мыши или нажатие клавиши.

См. также


Пример

В следующем примере URL-адрес http://www.adobe.com открывается в новом окне обозревателя, при этом обозревателю передаются данные о сеансе пользователя, извлеченные из объекта URLVariables.
package {
    import flash.display.Sprite;
    import flash.net.navigateToURL;
    import flash.net.URLRequest;
    import flash.net.URLVariables;

    public class NavigateToURLExample extends Sprite {

        public function NavigateToURLExample() {
            var url:String = "http://www.adobe.com";
            var variables:URLVariables = new URLVariables();
            variables.exampleSessionId = new Date().getTime();
            variables.exampleUserLabel = "Your Name";
            var request:URLRequest = new URLRequest(url);
            request.data = variables;
            try {            
                navigateToURL(request);
            }
            catch (e:Error) {
                // handle error here
            }
        }
    }
}
registerClassAlias()функция 
public function registerClassAlias(aliasName:String, classObject:Class):void

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

Сохраняет класс (тип) объекта при шифровании объекта в формат AMF. Когда вы кодируете объект в формат AMF, данная функция сохраняет псевдоним для его класса, что позволит при декодировании объекта восстановить нужный класс. Если в контексте кодирования псевдоним для класса объекта не был зарегистрирован, то объект кодируется как анонимный. Аналогичным образом, если в контексте декодирования отсутствует зарегистрированный псевдоним, для декодированных данных создается анонимный объект.

Примерами классов, кодирующих объекты в формат AMF, могут служить LocalConnection, ByteArray, SharedObject, NetConnection и NetStream.

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

Параметры

aliasName:String — Используемый псевдоним.
 
classObject:Class — Класс, связанный с данным псевдонимом.


Выдает
TypeError — Если один из параметров имеет значение null.

См. также


Пример

В данном примере с помощью функции registerClassAlias() регистрируется псевдоним (com.example.eg) для класса ExampleClass. Так как для класса регистрируется нужный псевдоним, объект может быть десериализован как экземпляр ExampleClass, при этом код выдаст значение true. Если бы вызов registerClassAlias() был удален, код бы выдал значение false.
package {
    import flash.display.Sprite;
    import flash.net.registerClassAlias;
    import flash.utils.ByteArray;

    public class RegisterClassAliasExample extends Sprite {
        public function RegisterClassAliasExample() {
            registerClassAlias("com.example.eg", ExampleClass);
            var eg1:ExampleClass = new ExampleClass();
            var ba:ByteArray = new ByteArray();
            ba.writeObject(eg1);
            ba.position = 0;
            var eg2:* = ba.readObject();
            trace(eg2 is ExampleClass); // true
        }
    }
}

class ExampleClass {}
sendToURL()функция 
public function sendToURL(request:URLRequest):void

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

Отправляет URL-запрос на сервер, но игнорирует ответ.

Для изучения ответа сервера используйте метод URLLoader.load().

Нельзя подключаться к общепринятым зарезервированным портам. Полный список заблокированных портов см. в разделе "Ограничение сетевых API-интерфейсов" в главе "Безопасность" книги Программирование на ActionScript 3.0.

Можно запретить использование SWF-файлом этого метода путем установки параметра allowNetworking для тегов object и embed на странице HTML, содержащей SWF-содержимое.

В приложении Flash Player 10 и более поздней версии при использовании типа содержимого multipart (например, multipart/form-data), в котором содержится отправка (обозначена параметром filename в заголовке content-disposition в теле оператора POST), к операции POST применяются правила безопасности для отправок:

Кроме того, все объекты multipart Content-Type должны иметь допустимый синтаксис (в соответствии со стандартами RFC2046). Если синтаксис является недопустимым, к операции POST применяются правила безопасности, действующие для отправок.

Дополнительные сведения о безопасности см. в следующих ресурсах.

Параметры

request:URLRequest — Объект URLRequest, определяющий URL-адрес отправки данных.


Выдает
SecurityError — Локальные ненадежные SWF-файлы изолированы от Интернета. Этой ситуации можно избежать, если переклассифицировать данный SWF-файл как локальный с сетевым подключением или доверенный.
 
SecurityError — Нельзя подключаться к общепринятым зарезервированным портам. Полный список заблокированных портов см. в разделе "Ограничение сетевых API-интерфейсов" в главе "Безопасность" книги Программирование на ActionScript 3.0.

Пример

В следующем примере данные о сеансе пользователя, извлеченные из объекта URLVariables, передаются приложению по адресу http://www.yourDomain.com/application.jsp.
 package {
    import flash.display.Sprite;
    import flash.net.URLRequest;
    import flash.net.URLVariables;
    import flash.net.sendToURL;

    public class SendToURLExample extends Sprite {

        public function SendToURLExample() {
            var url:String = "http://www.yourDomain.com/application.jsp";
            var variables:URLVariables = new URLVariables();
            variables.sessionId = new Date().getTime();
            variables.userLabel = "Your Name";

            var request:URLRequest = new URLRequest(url);
            request.data = variables;
            trace("sendToURL: " + request.url + "?" + request.data);
            try {
                sendToURL(request);
            }
            catch (e:Error) {
                // handle error here
            }
        }
    }
}