Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Конфликт имён классов (http://www.flasher.ru/forum/showthread.php?t=150646)

t0di 15.02.2011 19:37

Конфликт имён классов
 
Ребят, нужна информация, не могу найти(
Есть мувик, который использует класс xxx. Мувик загружает другой удалённый мувик, у которого тоже есть класс xxx. Мувик грузится в тот же домен безопасности. Но xxx в главном мувике содержит изменения в методах. Вопрос, как в этом случае поступает проигрыватель? Действительно ли удалённый мувик использует xxx главного а не свой?.. В принципе всё это логично, но хотелось бы ещё узнать поподробнее про приоритетность.

arkadattx 15.02.2011 20:14

Просто при указании типа объекта прописывайте ему полностью путь к классу, можно так выразиться, что прописываете туда содержимое импорта

t0di 15.02.2011 20:44

Цитата:

Сообщение от arkadattx (Сообщение 973563)
Просто при указании типа объекта прописывайте ему полностью путь к классу, можно так выразиться, что прописываете туда содержимое импорта

Мне не нужен способ, который избавит меня от конфликта. Сорри, не уточнил, что класс не с таким же именем, а из того же пакета и ТОТ ЖЕ, оба приложения компилятся flex'ом, всё в рамках одного проекта. Хочется получить информацию о том с чем я столкнулся..

gloomyBrain 15.02.2011 21:33

Цитата:

хотелось бы ещё узнать поподробнее про приоритетность
Нет никакой приоритетности. Если такой класс в домене уже имеется, то он НЕ заменяется на загруженный. Чтобы использовать разные классы, нужно грузить их в разные домены.

t0di 15.02.2011 21:47

Цитата:

Сообщение от gloomyBrain (Сообщение 973590)
Нет никакой приоритетности. Если такой класс в домене уже имеется, то он НЕ заменяется на загруженный.

Я не говорю что он заменяется.
Цитата:

Сообщение от gloomyBrain (Сообщение 973590)
Чтобы использовать разные классы, нужно грузить их в разные домены.

А если я их гружу в один домен то что будет? Это и есть вопрос, уже не знаю как уточнять)
У меня нет проблемы в разработке, мне нужен не совет, а объяснение работы AVM в такой ситуации.

gloomyBrain 15.02.2011 21:55

Цитата:

объяснение работы AVM в такой ситуации
Если у Вас нет проблем с разработкой, то Вам должно быть очевидно, что:
- swf-файл есть набор инструкций, представленный байт-кодом.
- байт-код всегда исполняется в каком-то домене
- класс, если он уже присутствует в домене, не заменяется

t0di 15.02.2011 22:06

Цитата:

Сообщение от gloomyBrain (Сообщение 973590)
- класс, если он уже присутствует в домене, не заменяется

Мы повторяемся, именно в этой ситуации с чем будет работать мувик1 и мувик2?
Вообще вот какая ситуация, первый мувик использует дополненную новыми методами и изменённую версию класса. Мувик2 скомпилен со старой версией класса. И так получилось, что в итоге мувик2 использует измененную версию класса, а не ту, с которой был скомпилен. Оба мувика в одном домен.
И снова вопрос, почему?) Собственно из Вашего "не заменяется" хотелось бы услышать "а как тогда?" :)

gloomyBrain 15.02.2011 22:19

Цитата:

с чем будет работать мувик1 и мувик2
С одним и тем же. С тем что было в домене раньше.
По сути дела, в загружаемом мувике есть инструкция - "создать экземпляр класса ххх". Как она обрабатывается? - в текущем домене ищется класс ххх и создается его экземпляр. Т.к. класс ххх - это класс из загружающего swf, то его экземпляр и создается.

t0di 15.02.2011 23:13

Цитата:

Сообщение от gloomyBrain (Сообщение 973605)
Т.к. класс ххх - это класс из загружающего swf, то его экземпляр и создается.

Нет, класс xxx есть и в загружающем и в загруженном. Но я понял, что использоваться будет тот класс, который уже есть. Получается, что всегда будет использоваться тот класс, который был определён в домене раньше? Если да, то вопрос закрыт :)

gloomyBrain 15.02.2011 23:28

Вопрос закрыт с поста №4 =)

Цитата:

Нет, класс xxx есть и в загружающем и в загруженном
То, что он есть в swf-файле, не означает, что он 2 раза присутствует в ApplicationDomain


Часовой пояс GMT +4, время: 17:37.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.