Adobe - Flash - Платформа, работеща с домейни на приложения

Flash Player 9 и по-нови версии, Adobe AIR 1.0 и по-нови

Класът ApplicationDomain е за съхраняване на таблицата с дефиниции ActionScript 3.0. Целият код в SWF файла е дефиниран да съществува в домейна на приложението. Домените на приложения се използват за разделяне на класове, които са в същия домейн на защита. Това прави възможно съществуването на множество дефиниции от един и същи клас, а също така позволява на дъщерни елементи да използват повторно дефинициите на родителски елементи.

Приложните домейни могат да се използват при зареждане на външни SWF файлове, написани в ActionScript 3.0 с помощта на API на Loader. (Обърнете внимание, че домейните на приложения не могат да се използват за зареждане на изображения или SWF файлове, написани в ActionScript 1.0 или ActionScript 2.0.) Всички дефиниции на ActionScript 3.0 в заредения клас се съхраняват в домейна на приложението. Когато зареждате SWF файл, можете да го включите в същия домейн на приложение като обекта Loader, като зададете параметъра applicationDomain на обекта LoaderContext на ApplicationDomain.currentDomain. След като зареденият SWF файл е в същия домейн на приложението, можете директно да извикате класовете му. Това е полезно, ако зареденият SWF файл съдържа вградено мултимедийно съдържание, до което може да се осъществи достъп чрез съответните имена на класове, или ако искате да осъществите достъп до методите на заредения SWF файл.

Следващият пример показва, че имате достъп до отделен файл Greeter.swf, който дефинира публичен метод с име welcome ():

Имайте предвид следното, когато работите с домейни на приложения.

Целият код в SWF файла е дефиниран да съществува в домейна на приложението. Текущ домейн приложението е домейнът, в който се изпълнява основното приложение. Системен домейн съдържа всички домейни на приложения, включително текущия домейн, което означава, че съдържа всички класове на Flash Player.

Всички домейни на приложения с изключение на системния домейн имат асоцииран родителски домейн. Родителският домейн за основния домейн на приложението е системният домейн. Заредените класове се дефинират само ако не са дефинирани вече в техните родителски класове. Не може да замени заредената дефиниция на клас с нова дефиниция.

Следващата диаграма показва приложение, което зарежда съдържание от различни SWF файлове в един и същи домейн, domain1.com. В зависимост от съдържанието, което изтегляте, можете да използвате различни домейни на приложения. По-долу се описва логиката за присвояване на подходящия домейн на приложението за всеки SWF файл в приложението.