Руководство по actionscript. часть 3, стр. 066



Item Price
3-legged Coffee Table 79.99

Руководство по actionscript. часть 3, стр. 067

Для обращения к уточненным пространствам имен элементам и атрибутам из листинга 18.14 мы должны сначала получить ссылку на используемые пространства имен. Чтобы получить ссылку на пространство http: / /www. example. com/ furniture, мы вызываем метод экземпляра namespace ( ) класса XML над корневым узлом документа, передавая в качестве аргумента префикс «shop». В результате метод namespace ( ) возвращает объект Namespace, представляющий пространство имен http://www. example. com/furniture. Мы присваиваем этот объект переменной shopNS для дальнейшего использования, var shopNS:Namespace = catalog. namespaceCshop»);

В качестве альтернативы, если известен идентификатор URI пространства имен, можно создать ссылку на объект Namespace, используя конструктор одноименного класса:

var shopNS:Namespace = new Namespace(«http://www. example. com/furniture»):

Чтобы получить ссылку на пространство имен, используемое по умолчанию, мы вызываем метод namespace ( ) над корневым узлом документа, не передавая префикс пространства имен:

var htmlNS:Namespace = catalog. namespace( ):

В качестве альтернативы, если известен идентификатор URI пространства имен, мы можем создать ссылку на объект Namespace, используемый по умолчанию, с помощью конструктора одноименного класса:

var htmlNS:Namespace = new Namespace(«http://www. w3.org/1999/xhtml»);

Для обращения к пространствам имен документа могут использоваться и методы inScopeNamespaces ( ) и namespaceDeclarations ( ). Дополнительную информацию можно найти в справочнике по языку ActionScript корпорации Adobe.

В расширении Е4Х атрибуты пространств имен XML не представляются в виде атрибутов (то есть к ним нельзя обратиться с помощью метода attributesC) или выражения некийЭлемент.®*). Вместо этого для обращения к объявлениям пространств имен элемента применяется метод экземпляра namespaceDeclarations() класса XML.

Теперь, когда у нас есть ссылка на объект Namespace, мы можем обращаться к уточненным пространством имен элементам и атрибутам, используя уточненные имена в следующем общем формате:

пространствоИмен::локальноеИмяЭлемента пространствоИмен::$локальноеИмяАтрибута

Например, вот так записывается уточненное имя элемента в коде на языке ActionScript:

shopNS::price

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

Вот так можно обратиться к элементу , который уточняется пространством имен по умолчанию (http: / /www. w3 . org/1999/xhtml):

catalog. htmlNS::body

Для обращения к элементу, который является ребенком элемента , используется следующая запись:

catalog. htmlNS::body. shopNS::table

Для обращения к атрибуту shop: id используется такая запись:

catalog. htmlNS::body. shopNS::table.@shopNS::id

Для обращения к элементу мы можем использовать следующий «кошмарный» код:

catalog. htmlNS::body. shopNS: -.table. htmlNS::table. htmlNS: :tr[ 1].htmlNS::td[l].shopNS::price

Однако мы будем спать спокойнее, если воспользуемся преимуществом оператора «потомок» (. .) в двух местах, как показано в следующем коде:

catalog. .shopNS: -.table. .shopNS: :price

И все равно повторное использование shopNS: : слегка раздражает. Мы можем избежать нескольких лишних нажатий клавиш, попросив язык ActionScript автоматически уточнять все неуточненные имена элементов и атрибутов с помощью

выбранного пространства имен. Для этого мы используем инструкцию назначения пространства имен XML по умолчанию, которая имеет следующий вид:

default xml namespace = пространствоИменИлиСтрокаиЙ1

Например, следующий код заставляет язык ActionScript автоматически уточнять все неуточненные имена элементов и атрибутов с помощью пространства имен http://www. example. com/furniture:

default xml namespace = shopNS;

После выполнения этой инструкции пространство имен http: / / www. example. com/ furniture применяется ко всем неуточненным ссылкам на элементы и атрибуты, поэтому мы можем сократить следующий код:

catalog..shopNS::table..shopNS::price

до записи:

catalog..table..price

» «|СяР Из»за ошибки в приложении Flash Player 9 при выполнении предыдущего примера кода 1—1 (catalog..table..price) в первый раз возвращается значение undefined.

Руководство по actionscript. часть 3, стр. 068

В более полном примере документ каталога, скорее всего, будет содержать несколько элементов. Для обращения к определенному столу нам придется использовать фильтрующий предикат, как показано в следующем коде:

catalog..table.(@id == 4875)..price

В листинге 18.15 приведен код, который можно использовать для обращения и отображения информации обо всех столах из каталога.

Листинг 18.15. Отображение всех столов из каталога

var shopNS:Namespace = catalog. namespaceCshop»); default xml namespace = shopNS: for each (var table:XML in catalog..table) { trace(table..desc + «: » + table..price):

}

Как и в случае с именами элементов и атрибутов, мы можем использовать групповой символ свойств (*) с пространствами имен. Например, следующий код возвращает объект XMLList, представляющий все элементы

во всех пространствах имен:

catalog..*::table

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

объектХМ1. .*::* // элементы объектХМ!.. .$*::* II атрибуты

Чтобы получить всех детей во всех пространствах имен или за пределами пространства имен, используется такой код:

объектХМ1 .*’: :* // элементы объектХМ!..®*::* II атрибуты

Создание элементов и атрибутов, уточняемых пространствами имен

Для создания элементов и атрибутов, которые уточняются пространствами имен, мы используем синтаксис обращения к уточненным именам, рассмотренный в предыдущем разделе, вместе с методиками создания элементов и атрибутов, описанными в разд. «Изменение или создание нового содержимого XML».

Перед созданием имен, уточняемых пространствами имен, мы должны создать (или получить) ссылку на объект Namespace. Например, следующий код создает два объекта Namespace и присваивает их переменным htmlNS и shopNS для дальнейшего использования в уточненных именах:

var htmlNS-.Namespace = new NamespaceC’html».

Руководство по actionscript. часть 3, стр. 069

«http://www. w3.org/1999/xhtml»): var shopNS:Namespace = new NamespaceC’shop».

«http://www. example. com/furni ture»):

Когда создается не один элемент или атрибут, а целый документ, обычно (и это более удобно) применяется пространство имен по умолчанию, которое указывается в инструкции default XML namespace. Например, следующий код в качестве пространства имен по умолчанию устанавливает http: / /www. w3 . org/1999/xhtml:

default xml namespace = htmlNS:

Как только будет установлено пространство имен по умолчанию, все вновь создаваемые элементы (но не атрибуты), для которых пространство имен не указано явным образом, будут автоматически уточняться с помощью пространства имен по умолчанию. Например, следующий код создает элемент с локальным именем «html»; для него явно не указано пространство имен, поэтому это имя автоматически уточняется с помощью пространства имен по умолчанию (http: / / www. w3 . org/1999/xhtml):

var catalog:XML = ;

Данная строка кода генерирует следующий исходный код XML:



Чтобы добавить объявление пространства имен к указанному элементу, используется метод экземпляра addNamespace ( ) класса XML. Например, следующий код добавляет объявление нового пространства имен к предыдущему элементу:

catalog. addNamespace(shopNS);

Результирующий исходный код XML выглядит так:



Возможно, вы узнали приведенный элемент — это первая строка кода из документа каталога, представленного в листинге 18.14. Достроим оставшуюся часть этого документа. Вот теги и. Их имена автоматически уточняются пространством имен по умолчанию (http: / /www. w3 . org/1999/xhtml).

catalog. head. title = «Catalog»:

Теперь создадим элемент и его атрибут shop: id. Их имена уточняются пространством имен http: / /www. example. com/f urniture. Мы хотим получить исходный код XML, который выглядит следующим образом:



Для того чтобы создать данный элемент, воспользуемся следующим кодом на языке ActionScript:

catalog. body. shopNS::table = «»;

catalog. body. shopNS::table.@shopNS::id = «4875″;

Приведенный код вам должен быть знаком. За исключением синтаксиса уточнителя пространства имен shopNS : :, он аналогичен коду, который мы использовали ранее для создания элементов и атрибутов. Уточнитель пространства имен просто задает пространство для локальных имен table и id. В листинге 18.16 применяется та же методика для создания оставшейся части документа каталога. В примере обратите внимание на следующую строку кода:

catalog. body. shopNS::tablе. table. tr. td[l] = «Price»;

Она создает новый элемент с именем 11 td» непосредственно за существующим элементом catalog. body. shopNS : : table. table. tr. td [ 0 ].

Руководство по actionscript. часть 3, стр. 070

Листинг 18.16. Создание каталога мебели

// Создание пространств имен

var htmlNS:Namespace = new NamespaceChtml»,

«http://www. w3.org/1999/xhtml»); var shopNS:Namespace = new NamespaceCshop»,

«http://www. example. com/furniture»); // Задание пространства имен по умолчанию default xml namespace = htmlNS;

// Создание корневого элемента var catalog:XML = ;

// Добавление пространства имен furniture к корневому элементу catalog. addNamespace(shopNS);

// Создание оставшейся части документа

catalog. head. title = «Catalog»;

catalog. body. shopNS: -.table = «»;

catalog. body. shopNS: -.table.@shopNS::id = «4875″;

catalog. body. shopNS: .-table. table = «»;

catalog. body. shopNS: .-table. table.^border = «1″;

catalog. body. shopNS::table. table. tr. td = «Item»;

catalog. body. shopNS::table. table. tr. td[l] = «Price»;

catalog. body. shopNS: .-table. table. tr. Malign = «center»;

catalog. body. shopNS::table. table. tr[l] = «»;

catalog. body. shopNS::table. table. tr[l].Malign = «left»;

catalog. body. shopNS::table. table. tr[l].td. shopNS::desc =

«3-1 egged Coffee Table»:

catalog. body. shopNS::table. table. tr[l].td[l] = «»:

catalog. body. shopNS: :table. table. tr[l] .td[l] .shopNS: .-price = «79.99″:

Вот мы и рассмотрели все важнейшие темы, касающиеся расширения Е4Х. В оставшейся части этой главы будут рассмотрены два дополнительных вопроса: преобразование и равенство данных XML.

Руководство по actionscript. часть 3, стр. 071

Преобразование объектов XML и XMLList в строки

Как мы уже видели на протяжении этой главы, расширение Е4Х реализует собственные правила для преобразования экземпляров классов XML и XMLList в строку. Для информации в этом разделе описываются правила расширения Е4Х, применяемые для преобразования объектов XML и XMLList в строку. Не забывайте, что экземпляр класса XML может представлять пять различных типов содержимого: элемент, атрибут, текстовый узел, комментарий или инструкцию обработки. Мы рассмотрим правила преобразования для каждого типа в отдельности, но начнем с рассмотрения преобразования объекта XMLList в строку, чтобы подготовиться к дальнейшему обсуждению.

Преобразование объекта XMLList в строку

Когда объект XMLList содержит один-единственный экземпляр класса XML, результат вызова метода toString ( ) класса XMLList полностью совпадает с результатом вызова метода toString ( ) над этим единственным экземпляром класса XML. Например, в следующем коде переменная title ссылается на объект XMLList, чей единственный экземпляр класса XML представляет элемент. В результате преобразования значения переменной title в строку возвращается значение Ulys ses — именно оно было бы получено в результате вызова метода toString ( ) непосредственно над единственным экземпляром класса XML:

var novel:XML = Ulysses Joyce. James Penguin Books Ltd

// Создаем объект XMLList с одним-единственным экземпляром класса XML var title:XMLList = novel. TITLE; // Преобразуем объект XMLList в строку и отображаем ее. trace(title); // Отображает: Ulysses

Когда объект XMLList содержит несколько экземпляров класса XML, вызов метода toString ( ) класса XMLList возвращает строку, которая получается в результате вызова метода toXMLS tring ( ) над каждым экземпляром класса XML и объединения содержимого этих экземпляров, при этом содержимое каждого экземпляра размещается на отдельной строке. Например, в следующем коде объект XMLList, присваиваемый переменной details, содержит три экземпляра класса XML, которые представляют три элемента — , и :

// Создаем объект XMLList с тремя экземплярами класса XML var details:XMLList = novel.*;

Преобразование значения переменной details в строку возвращает исходный код ХМЬдля элементов, и :

// Преобразуем объект XMLList в строку и отображаем ее trace(details); // Выводит:

// Ulysses

// Joyce. James

// Penguin Books Ltd

Преобразование элемента XML в строку

Для экземпляров класса XML, представляющих элементы, метод toString ( ) этого класса возвращает один из двух результатов в зависимости от содержимого данного элемента. Если элемент содержит детей, метод toS tring ( ) класса XML возвращает исходный XML-код для этого элемента и его детей, отформатированный в соответствии с настройками переменных XML. ignoreWhi tespace, XML. pret tyPr in t ing и XML. pretty Indent. Например, в следующем коде элемент имеет три элемента-ребенка (, и ):

var novel:XML = Ulysses Joyce. James Penguin Books Ltd ;

Преобразование этого элемента в строку вернет исходный XML-код:

trace(novel. toString( )); //Отображает:

//

// Ulysses

// Joyce. James

// Penguin Books Ltd

//
;

Для элемента, не имеющего детей, метод toString ( ) класса XML вернет текст, содержащийся в этом элементе, без открывающего и закрывающего тегов. Например, следующий код преобразует элемент в строку. Результатом является строка Ulysses, а не Ulysses.

Руководство по actionscript. часть 3, стр. 072

Trace(novel. TITLE. toString( )); // Выводит: Ulysses

Если мы хотим получить строку, включающую текстовый узел и окружающие его теги, используется метод toXMLString ( ) класса XML, как показано в следующем коде:

trace(novel. TITLE. toXMLString( )): // Выводит: Ulysses

Стоит отметить, что правила преобразования строк для элементов XML, определенные в расширении Е4Х, изменяют способ обращения к концевым текстовым узлам в языке ActionScript. В языках ActionScript версий 1.0 и 2.0 для обращения к текстовым узлам использовалась переменная экземпляра firstChild класса XML (которая теперь, в языке ActionScript 3.0, является переменной экземпляра firstChild класса XMLDocument). Например, устаревшим эквивалентом следующей инструкции расширения Е4Х: trace(novel. TITLE. toStringC ));

будет являться:

trace(novel. fi rstChi1d. fi rstChi1d. fi rstChiId);

В расширении E4X к тексту элемента, не имеющего элементов-детей, в контексте строки можно обратиться непосредственно через имя этого элемента. Вот еще два примера кода с использованием расширения Е4Х (на этот раз мы опустили явный вызов метода toString ( ), поскольку среда Flash автоматически вызывает этот метод над любым аргументом, передаваемым в функцию trace ( ) ):

trace(novel. AUTHOR); // Выводит: Joyce, James trace(novel. PUBLISHER); // Выводит: Penguin Books Ltd

Далее представлено прямое сравнение устаревшего метода доступа к текстовым узлам с аналогичным методом доступа расширения Е4Х:

// Доступ к текстовому узлу в расширении Е4Х var msg:XML =

World

J. Programmer

Hello trace(msg. TO); // Выводит: World

trace(msg. FROM); // Выводит: J. Programmer trace(msg. MESSAGE); // Выводит: Hello

// Устаревший метод доступа к текстовому узлу

var msgDoc:XMLDocument = new XMLDocument(«»

+ «World»

+ «J. Programmer»

+ «Hello»

+ «»);

traceCmsgDoc. firstChild. firstChild. firstChild): // Выводит: World trace(msgDoc. firstChiId. childNodes[l].firstChild); // Выводит: J. Programmer traceCmsgDoc. firstChild. childNodes[2].firstChild): // Выводит: Hello

Преобразование атрибута в строку

Для экземпляров класса XML, которые представляют атрибуты, метод toString ( ) возвращает только значение этого атрибута, а не все его определение целиком. Например, следующий код преобразует атрибут ISBN предыдущего элемента в строку. Результатом преобразования является строка 0141182806, а не

isbn=’014ii82806\

traceCnovel.@ISBN. toString( )); // Выводит: 0141182806

Преобразование комментариев и инструкций обработки в строки

Когда метод toString ( ) класса XML вызывается над экземпляром класса XML, представляющим комментарий или инструкцию обработки, этот комментарий или инструкция обработки возвращается целиком:

XML. ignoreComments = false;

XML. ignoreProcessinglnstructions = false;

// Создаем фрагмент XML, включающий и комментарий, и инструкцию обработки

// (выделены полужирным шрифтом)

var novel:XML =





Ulysses

Joyce, James

Penguin Books Ltd ;

// Преобразуем комментарий в строку. // Выводит: trace(novel. comments( )[0].toString( ));

// Преобразуем инструкцию обработки в строку.

Руководство по actionscript. часть 3, стр. 073

// Выводит:

trace(novel. processingInstructions( )[0].toStringC ));

Определение равенства в расширении Е4Х

В этом разделе рассматриваются специальные правила языка ActionScript для определения равенства объектов XML, XMLList, QName и Namespace. Стоит отметить, однако, что представленная информация применима только к оператору равенства (==) — она не касается оператора строгого равенства (===). Расширение Е4Х не изменяет семантику оператора строгого равенства. В частности, этот оператор считает два экземпляра класса XML, XMLList — QName или Namespace — равными тогда, и только тогда, когда они указывают на одну и ту же объектную ссылку.

Равенство объектов XML

Оператор равенства (==) считает два экземпляра класса XML, представляющие элементы, равными, если они представляют одну и ту же иерархию XML. Например, в следующем коде переменные xl и х2 указывают на различные объектные ссылки, но считаются равными, поскольку представляют одну и ту же иерархию XML:

var xl:XML = ; var x2:XML = ; trace(xl == x2); // Выводит: true

По умолчанию расширение E4X игнорирует пробельные узлы, поэтому два экземпляра класса XML, представляющие элементы, считаются равными, когда имеют одинаковую разметку, даже если используется различное форматирование. Например, в следующем коде исходный XML-код для экземпляра класса XML, хранящегося в переменной xl, не содержит пробельные узлы, в отличие от исходного XML-кода для экземпляра класса XML, хранящегося в переменной х2, который содержит два пробельных узла. Однако, несмотря на это различие, экземпляры по-прежнему

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

var xl:XML = ; var x2:XML =

;

trace(xl == x2): // По-прежнему выводит: true

Если перед парсингом кода XML мы скажем среде Flash учитывать пробельные узлы, экземпляры класса XML из предыдущего примера больше не будут считаться равными, как показано в следующем коде:

XML. ignoreWhitespace = false: // Не игнорировать пробельные узлы var xl:XML = : var x2:XML =

:

trace(xl == x2); // Теперь выводит: false

Экземпляр класса XML, представляющий элемент, считается равным экземпляру класса XML, представляющему атрибут, если элемент не имеет элементов-детей и содержащийся в нем текст совпадает со значением атрибута. Например, в следующем коде атрибут QUANTITY считается равным элементу, поскольку элемент не имеет элементов-детей и содержит текст, который совпадает со значением атрибута QUANTITY:

var product:XML = 1: trace(product.^QUANTITY == product. COST); // Выводит: true

Подобным образом экземпляр класса XML, представляющий элемент, считается равным экземпляру класса XML, представляющему текстовый узел, если элемент не имеет элементов-детей и содержащийся в нем текст совпадает со значением текстового узла. Например, в следующем коде текстовый узел, содержащийся в элементе, считается равным элементу, поскольку второй элемент не имеет элементов-детей и содержит текст, который совпадает со значением текстового узла-ребенка первого элемента:

var product:XML =

1 1
:

trace(product. COST.*[0] == product. QUANTITY): // Выводит: true

Во всех остальных случаях, если типы узлов двух экземпляров класса XML отличаются, эти два экземпляра считаются разными. Когда типы узлов совпадают, два экземпляра считаются равными, если типом обоих узлов является:

? «атрибут», а значения атрибутов совпадают;

? «текст», а текст узлов совпадает;

? «комментарий», а текст, расположенный между открывающими и закрывающими разделителями комментария (), совпадает;

? «инструкция обработки», а текст, расположенный между открывающими и закрывающими разделителями инструкции обработки (), совпадает.

Руководство по actionscript. часть 3, стр. 074

Равенство объектов XMLList

Чтобы определить, являются ли два экземпляра класса XMLList равными, среда выполнения Flash сравнивает по порядку все экземпляры в этих объектах, используя правила определения равенства объектов XML, которые были рассмотрены в предыдущем разделе. Если хотя бы один элемент из первого экземпляра класса XMLList не равен соответствующему элементу из второго экземпляра, два экземпляра класса XMLList считаются неравными. Например, в следующем коде объект XMLList, возвращаемый выражением msgl. *, считается равным объекту XMLList, возвращаемому выражением msg2 . *, поскольку каждый экземпляр класса XML из результата выражения msgl. * считается равным экземпляру класса XML в соответствующей позиции из результата выражения msg2 . *:

var msgl:XML = World J. Programmer Hello :

var msg2:XML = World J. Programmer Hello ;

trace(msgl.* == msg2.*): // Выводит: true

Экземпляр класса XML и объект XMLList, содержащий один-единственный экземпляр класса XML, сравниваются точно так же, как два экземпляра класса XML:

traceCmsgl. FROM == msg2.*[l]); // Выводит: true

Это значит, что оператор равенства (==) считает объект XMLList с одним-един-ственным экземпляром класса XML равным этому экземпляру!

traceCmsgl. FROM == msgl. FROM[0]): // Выводит: true

Чтобы отличить объект XMLList, содержащий один-единственный экземпляр класса XML, от этого экземпляра, используйте оператор строгого равенства (===):

traceCmsgl. FROM === msgl. FROM[0]): // Выводит: false

Равенство объектов QName

Класс QName представляет имя элемента или атрибута, уточняемое пространством имен. Два экземпляра класса QName считаются равными, если их названия пространств имен и локальные имена совпадают (то есть они имеют одинаковые значения переменных uri и localName). Например, следующий код создает объект QName с помощью конструктора класса QName и сравнивает этот объект с объектом QName, полученным из XML-документа. Оба объекта QName имеют одинаковые названия пространств имен и локальные имена, поэтому считаются равными.

var product:XML = xmlns:someCorp=»http://www. example. com/someCorp»>

99.99 :

var someCorp:Namespace = product. namespace(«someCorp»);

var qnl:QName = new QNameC’http://www. example. com/someCorp», «PRICE»):

var qn2:QName = product. someCorp:.PRICE. name( ):

trace(qnl == qn2): // Выводит: true

Равенство объектов Namespace

Класс Namespace представляет уточняющую часть имени, которое уточняется с помощью пространства имен. Два объекта Namespace считаются равными тогда, и только тогда, когда они содержат одно и то же название пространства имен (то есть когда их переменные uri хранят одно и то же значение), независимо от префикса. Например, следующий код создает объект Namespace с помощью конструктора класса Namespace и сравнивает созданный объект с объектом Namespace, полученным из XML-документа. Оба объекта Namespace содержат один и тот же идентификатор URI, поэтому считаются равными, несмотря на то, что префиксы отличаются.

Руководство по actionscript. часть 3, стр. 075

Var product:XML = xmlns:someCorp=»http://www. example. com/someCorp»>

99.99 : var nsl:Namespace = product. namespace(«someCorp»):

var ns2:Namespace = new NamespaceC’sc», «http://www. example. com/someCorp»): trace(nsl == ns2): // Выводит: true

Дальнейшее изучение

В этой главе была рассмотрена большая часть основной функциональности расширения Е4Х, однако исчерпывающее описание выходит за рамки данной книги. Для дальнейшего изучения посмотрите на описание методов и переменных классов XML и XMLList в справочнике по языку ActionScript корпорации Adobe. Все технические детали можно найти в спецификации расширения Е4Х по адресу http://www. ecma-intemational^rg/publications/standards/Ecma-357.htm

Далее по программе — знакомство с ограничениями безопасности приложения Flash Player. Если изучение этой темы не кажется вам приятным занятием, можете перейти сразу к части II, где будут рассматриваться вопросы отображения содержимого на экране. Просто помните, что если в процессе разработки вы столкнетесь с ошибками безопасности, глава 19 поможет вам решить появившиеся проблемы.

ГЛАВА 19

Ограничения безопасности

Flash Player

Чтобы предотвратить передачу данных несанкционированным получателям без соответствующего разрешения, приложение Flash Player тщательно проверяет все запросы на загрузку или на доступ к внешним ресурсам либо на взаимодействие с другими SWF — или HTML-файлами. Любой запрос к внешнему ресурсу из SWF-файла (к ресурсу, который не является частью скомпилированного SWF-файла, осуществляющего запрос), отвергается или принимается на основании таких факторов, как:

? операция языка ActionScript, используемая для доступа к ресурсу;

? статус безопасности SWF-файла, выполняющего запрос;

? местоположение ресурса;

? набор явных прав доступа для ресурса, которые определены либо создателем ресурса, либо его распространителем;

? явные права доступа, предоставленные пользователем (например, разрешение на подключение к камере или микрофону пользователя);

? тип приложения Flash Player, выполняющего SWF-файл (например, версия встраиваемого расширения, автономная версия, отладочная версия среды разработки Flash).



Полезные ссылки
Случайные записи
  • 19.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.20
  • 15.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.55
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.121
  • 18.03.2011">Руководство по actionscript. часть 2, стр. 120
  • 13.03.2011">Руководство по actionscript. часть 3, стр. 096
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.7
  • 18.03.2011">Руководство по actionscript. часть 2, стр. 132
  • 17.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.4
  • 24.02.2011">Руководство по actionscript. часть 6, стр. 107
  • 02.03.2011">Руководство по actionscript. часть 5, стр. 089
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.9
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 031
  • 12.03.2011">Руководство по actionscript. часть 3, стр. 117
  • 09.03.2011">Руководство по actionscript. часть 4, стр. 053
  • 19.03.2011">Руководство по actionscript. часть 2, стр. 104
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...