Форум 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)
-   -   Проблема смены клипов (http://www.flasher.ru/forum/showthread.php?t=112643)

CaXaP 04.06.2008 00:41

Проблема смены клипов
 
Здравствуйте!

Возникла небольшая (надеюсь) проблема - я начал изучать флеш по книге Д. Гурского, и там в конце проект игры "реверси". Я слегка отошёл от последовательности, описанной в книге и застопорился на следующем моменте:

У меня есть клип _root - туда помещён main.swf - что то вроде стартового клипа.
В нём я создаю пустой клип container, куда помещаю клип логина в игру login.swf. В дальнейшем я хочу использовать container для всех последующих клипов (клип для комнаты ожидания противника, клип для самого процесса игры и т.п.).

Так вот, клип container хорошо создаётся и туда помещается login.swf.
Но когда я залогинился, мне нужно поменять в клипе container мувик login.swf на мувик room.swf.
И когда я пишу loader.loadClip("room.swf",this), то результатом получаю белый фон =(

Получаетя что клипу нельзя поменять "себя" на другой клип?
Как можно обойти данную проблему?
И буду очень признателен, если вы поделитесь каким-нибудь более удобным способом организации подобных смен мувиков.

Заранее спасибо.

silin 04.06.2008 09:59

loader.loadClip("room.swf",this) загружает новый, но то что было в this удаляется, в том числе и сам loader..
если loader создать не в самом контейнере, а вне его - в том же _root, например, то все будет работать:
_root.loader.loadClip("room.swf",this)

CaXaP 04.06.2008 13:07

silin
Спасибо, заработало.

И ещё один вопрос по этой же теме.
Я создал loader на клипе main.swf и теперь обращаюсь к нему из остальных мувиков как _parent.loader.
Но думаю это не очень удачное решение, поскольку код становится жостко привязанным к этому мувику main.swf (например не сделать вложенность клипов более 1 (иначе клипы следующих вложенностей по свойству _parent не попадут на main.swf)).
Была мысль записать loader на _root, но оч. не хочется засорять осн. временную диаграмму своим мусором (если вдруг игра будет расположена на каком-либо др. сайте то могут возникнуть конфликты идентификаторов да и просто нехорошо мусорить в чужих клипах).
Есть ли возможность этот loader записать куда-нибудь, откуда его будет видно всем мувикам моим, при этом не используя _root (это учитывая что все мувики грузятся в клип container, заменяя собой старое содержимое и клип container не выход для хранения).

silin 04.06.2008 14:22

как вариант: поместить лоадер в _global:
_global.loader = new MovieClipLoader();

вызов из любого места (независимо от вложенности) :
_global.loader.loadClip("room.swf",this);
или просто loader.loadClip("room.swf",this);(если в самом мувике нет свойства loader, то все равно найдет)

CaXaP 04.06.2008 15:11

хорошо, спасибо за помощь)


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

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