![]() |
Как изменить класс подгруженного мувика?
Здравствуйте.
Я подгружаю в главный мувик другой мувик. В главном есть класс и я хочу, чтобы подгруженный мувик стал экземпляром этого класса. Если бы этот самый мувик находился в библиотеке в качестве символа, то можно было бы сделать просто Object.registerClass("MySymbolID", MyClass), но тут не получится, так как главный мувик не имеет достуа к библиотеке подгруженного мувика. В общем, я пробовал сделать через __proto__: Код:
//Это мой классХотелось бы узнать что происходит при подмене __proto__ у экземпляра (по моим наблюдениям ничего страшного), и как сделать так, чтобы подгруженный мувик стал экземпляром нужного мне класса, при условии, что внутри загружаемого мувика не должно быть вообще никакого кода. Варианты типа Код:
// Добавляем новый метод в экземпляр.Кто может предложить что-то лучшее? Спасибо. |
если сделать прототипом
твоего подгружаемого класса объект МувиКлип - то замена __прото__ у мувика не приведет к потере родных мувиклиповых методов Код:
cls = function (name) { |
Спасибо, это я знал, но к сожалению не все так просто. Например, вот код.
Код:
// Создаем новый мувик.То ли я чего-то не понимаю, то ли __proto__ экземпляра лучше не трогать, так как последствия непредсказуемы. И все же как присвоить класс подгруженному мувику? Неужели перечисленные выше способы единственные? |
Так, стоп, тормознул я чего-то. Вы правы, Nox Noctis, только добавлю, что строка
x.__proto__ = new cls(); будет каждый раз создавать новый обект-протоитп для каждого экземпляра поэтому это надо сделать один раз, а потом. y.__proto__ = x.__proto__; Всем спасибо, как я сам не догадался? :( |
Цитата:
это я по инерции написал, аналогично cls.prototype = new MovieClip(); правильнее написать x.__proto__ = cls.prototype хотя результат тот же: на самом деле prototype и __proto__ - это разные названия одного и того же |
| Часовой пояс GMT +4, время: 23:53. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.