Форум 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)
-   -   unloadMovie VS attachMovie - кто кого? (http://www.flasher.ru/forum/showthread.php?t=91707)

Amra Kimmerian 06.02.2007 18:13

unloadMovie VS attachMovie - кто кого?
 
Здравствуйте.
mc_logo пуст. Нажимаю на кнопку 1, выполняется
Код:

on(release) {
        _root.mc_logo.attachMovie("MainLogo", "MainLogo1", 1);
}

Появляется в mc_logo то что нужно.
Потом нажимаю на кнопку 2, выполняется:
Код:

on(release) {
        _root.mc_logo.loadMovie("LogoMastery.swf");
}

Снова появляется то что нужно. А вот если снова нажать кнопку 1, так все и остается на месте, как будто нажали на 2 кнопку.
Хорошо. Пишу для первой кнопки так:
Код:

on(release) {
        _root.mc_logo.unloadMovie("LogoMastery.swf");
        _root.mc_logo.attachMovie("MainLogo", "MainLogo1", 1);
}

И тут MainLogo не появляется, а вот LogoMastery работает отменно.
Как урегулировать конфликт unloadMovie и attachMovie ? Можно ли в пустой клип загружать из библиотеки и извне swf-файлы в одном проекте? Просветите пожалуйста.

silin 07.02.2007 00:45

это потому, что нельзя аттачить из чужой библиотеки, а именно это и выходит при mc_logo.attachMovie("MainLogo", "MainLogo1", 1), когда в mc_logo уже внешний мувик..
грузи не в сам mc_logo, а в котейнер в нем
Код:

on(release) {
        _root.mc_logo.createEmptyMovieClip("contMC",1).loadMovie("LogoMastery.swf");
}

тогда все будет по понятиям..

Amra Kimmerian 07.02.2007 09:06

Большое спасибо silin за науку о понятиях :). Все получилось. Но вот теоретический вопрос немного не прояснился. Как Вы говорите "...нельзя аттачить из чужой библиотеки, а именно это и выходит... когда в mc_logo уже внешний мувик..". Но в последнем моем примере кода LogoMastery.swf предварительно выгружается из MoveiClip-а mc_logo. И все равно код не работает. Складывается ощущение, что если в клипе побывал внешний swf-файл, то библиотека там остается даже после его выгрузки. Почему так происходит?

aksios 07.02.2007 09:33

Цитата:

Сообщение от Amra Kimmerian
Код:

on(release) {
    _root.mc_logo.loadMovie("LogoMastery.swf");
}

Код:

on(release) {
    _root.mc_logo.unloadMovie("LogoMastery.swf");
    _root.mc_logo.attachMovie("MainLogo", "MainLogo1", 1);
}

И тут MainLogo не появляется, а вот LogoMastery работает отменно.
Как урегулировать конфликт unloadMovie и attachMovie ? Можно ли в пустой клип загружать из библиотеки и извне swf-файлы в одном проекте? Просветите пожалуйста.

У вас синтаксис
Код:

_root.mc_logo.unloadMovie("LogoMastery.swf");
неверен: когда чета загружается извне, то енто помещается в клип-назначения, замещая его содержимое, как если бы изначально оно там было. никаких *.swf внутри другого swf не бываетъ. Для того чтоб выгрузить, нужно убирать весь mc_logo. Попробуйте:
Код:

unloadMovie('mc_logo');

Amra Kimmerian 07.02.2007 09:54

Цитата:

Для того чтоб выгрузить, нужно убирать весь mc_logo.
aksyos, т. е. невозможно в один и тот же клип загружать разные swf по очереди? Потому как клип mc_logo исчезнет? И нужно для каждой новой подгрузки swf создавать новый клип? Или код:
Код:

_root.mc_logo.loadMovie("LogoMastery.swf");
одновременно создает клип mc_logo и грузит в него swf?
Чувствую что все неверно говорю, но вытекает из Ваших слов.

silin 07.02.2007 10:08

насчет синтаксиса все верно, но дело не в этом
>>Складывается ощущение, что если в клипе побывал внешний swf-файл, то библиотека там остается даже после его выгрузки
ага, похоже на то..
только после выгрузки библиотека там не остается (легко проверить), но и доступ к здешней библиотеке не восстанавливается..
меня, например, это не особо печалит: не вижу когда такое может понадобится

Amra Kimmerian 07.02.2007 10:21

Да просто клип этот я вручную поставил в нужное место и нужно что-бы в него то из основного проекта, то из подгружаемых грузились разные объекты (ну у меня это клипы с логотипами). Можно конечно кодом прописывать каждый раз на разных кнопках, но если координаты размещения логотипов поменяются в процессе разработки?... Понял! Нужно присвоить координаты этого клипа в начале всего фильма переменным, а с помощью переменных указывать всем кнопкам, куда при нажатии помещать вновь созданный клип, в который тут же грузить нужное. Можно ведь так сделать?

silin 07.02.2007 10:32

че-то не пойму в чем проблема:
mc_logo.attachMovie("MainLogo", "MainLogo1", 1) -создает MainLogo1 в mc_logo из библиотечного символа..

mc_logo.createEmptyMovieClip("MainLogo1",1).loadMovie(..) - делает тоже самое из внешнего..

что не устраивает ?

Amra Kimmerian 07.02.2007 10:37

silin, теперь все устраивает, немного в иерархии запутался. Спасибо! Извините, не хотел Вас злить :)

aksios 07.02.2007 15:14

В вашем случае было бы намного логичнее грузить все внешнее один раз и не убивать каждый раз при нажатии кнопки, а сделать пока не нужным клипам _visible=false; и клип_такой-то.stop(); Тогда вы сможите загружать внешние источники в удобное время и получите массу новых возможностей - эфект растворения-просвечивания при смене картинок к примеру.


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

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