Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 03.03.2009, 11:07
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 1  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
По умолчанию Куда записываются классы при регистрации с помощью Object.registerClass()

Привет. Недавно столкнулся с проблемкой, решил, но непонятки остались. Имеем два swf - test1.swf и test2.swf. В них есть символ с таким кодом:
Код AS1/AS2:
test1.swf
#initclip
function Clip():Void{}
Clip.prototype = new MovieClip();
Object.registerClass("Clip", Clip);
Clip.prototype.test = function():Void{
	trace("TEST_1");
}
#endinitclip
В test2.swf то же самое, меняю только trace("TEST_2").

Так вот, если теперь я гружу в main.swf эти флэшки последовательно (по onLoadInit()), то все ок. Если же я пытаюсь грузить их однопоточно - т.е. одновременно и для каждого свой лоадер, то два раза выполняется trace("TEST_1")!
Или же если я меняю строку в test2.swf
Код AS1/AS2:
Object.registerClass("Clip", Clip);
на
Код AS1/AS2:
Object.registerClass("Clip2", Clip);
без изменения линкажа в библиотеке, то также дважды выполняется trace("TEST_1")!
Единственное что мне приходит в голову - это то что эти классы записываются куда-то в глобальную область видимости и каким-то образом перекрывают друг друга. Но разве они не должны принадлежать таймлайну каждого из подгружаемых мувиков?
Фуф, чувствую что не понятно объяснил, извиняйте.
Вложения
Тип файла: zip New Folder (2).zip (16.4 Кб, 40 просмотров)

Старый 03.03.2009, 12:54
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Все классы хранятся в _global. Соответственно класс с одним именем может быть только один.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 03.03.2009, 12:59
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 3  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Мда. Вот и ответ на мой вопрос. Но интересно - ведь у каждой флэшки свой _global, пока она не подгружена, так? А когда подгружаем эти флэшки то что происходит? Все скидывается в один глобал? И почему не создается уникальное имя класса при подгрузке - что-то типа пакета? Как быть, если случайно окажутся одинаковые имена у совершенно разных классов подгружаемых флэшек?

Старый 03.03.2009, 13:01
CrazyFlasher вне форума Посмотреть профиль Отправить личное сообщение для CrazyFlasher Найти все сообщения от CrazyFlasher
  № 4  
Ответить с цитированием
CrazyFlasher
 
Аватар для CrazyFlasher

Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
для этого есть AS3, где такие проблемы легко решаются

Старый 03.03.2009, 13:15
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 5  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Но интересно - ведь у каждой флэшки свой _global, пока она не подгружена, так? А когда подгружаем эти флэшки то что происходит? Все скидывается в один глобал?
Да.
Цитата:
И почему не создается уникальное имя класса при подгрузке - что-то типа пакета?
За этим должен программист следить.
Цитата:
Как быть, если случайно окажутся одинаковые имена у совершенно разных классов подгружаемых флэшек?
Вот для этого пакеты и создаются.
Цитата:
для этого есть AS3, где такие проблемы легко решаются
Причем тут AS3? Пакеты можно и в AS1 и AS2 сделать.
__________________
(и)Нильс.ru | Плагины для FlashDevelop


Последний раз редактировалось iNils; 03.03.2009 в 13:19.
Старый 03.03.2009, 13:18
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 6  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Я то знаю что AS3.0 - это круто. Но мы пока на втором сидим (...
Спасибо.

Создать новую тему Ответ Часовой пояс GMT +4, время: 12:09.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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