Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   проблема с _root в классах внешнего клипа, подгруженного методом LoadMovieNum (http://www.flasher.ru/forum/showthread.php?t=93116)

Annihilator 14.03.2007 12:54

проблема с _root в классах внешнего клипа, подгруженного методом LoadMovieNum
 
Столкнулся со следующей странностью в цепочке видимости внутри классов.
Есть основное приложение игры и есть редактор уровней. Как отдельный swf редактор работает правильно, но мне надо его подгружать в игру. На его основной шкале указано this._lockroot = true; в игре подгружаю его стандартно: loadMovieNum("inner_map-editor.swf",1).
В коде редактора _root теперь ссылается на _level1, как и должно быть. А вот в классах, которые используются в редакторе, _root по-прежнему ведет на _level0, что естесственно не правильно (при чем большинство этих классов используются только в редакторе, а не в основной игре).

Почему так происходит и как это исправить?

etc 14.03.2007 12:55

Потому что классы в _global находятся.
Про _root надо вообще забыть, как и про loadMovieNum.

Annihilator 14.03.2007 13:11

А каким же еще методом подгружать внешний клип на отдельный уровень?
То есть мне надо что-бы это было полностью независимое приложение внутри основного.

etc 14.03.2007 13:31

Цитата:

Сообщение от Annihilator
А каким же еще методом подгружать внешний клип на отдельный уровень?

Если забыть про _root, то и отдельного уровня не понадобится. Главное не перекрывать классы в родительском клипе по именам. И все будет прекрасно работать. Если прямо так нужна ссылка на рут клипа, то надо использовать для этого статическое свойство класса. Это будет более корректно.

Annihilator 14.03.2007 14:01

Спасибо, я именно так и догадался. Просто вместо _root сделал свойство __root, которое при инициализации объекта и делаю ссылкой на реальный _root. =8)

Хотя понимаю, что все это конечно не по ООП-шному, но у меня есть много функций на руте, которые нельзя отнести к какому-то конкретному классу, поэтому приходится обращаться из классов к _root. ...или может сделать эти функции глобальными?...

etc 14.03.2007 14:35

Использовать статические свойства классов.


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

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