Форум 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=103929)

repz 15.11.2007 13:54

Повтор действия или ...?
 
Задача:
Есть мувик (ГЛАВНЫЙ) при клике на нем аттачится из библиотеки другой клип в центр экрана (сцены) и увеличивается в два раза.

В приаттаченом клипе два клипа:
1- при наведении вылазит хинт
2- мувик закрыть. выполняется unloadMovie() c именем приаттаченного. Если делать removeMovieClip(), то все работает, если не наводить на 1 мувик с хинтом.

Что не работает.
При повторном нажатии на ГЛАВНЫЙ мувик, мувик из библиотеки не позиционируется по центру и не увеличивается. Точнее сказать аттачится, но в x=0, y=0.

Код корявый конечно), но помогите разобраться.
Код:

hint._visible=false; //прячем подсказку
mk1.onRelease=function(){
        _root.attachMovie("mk1mc", "newmc", 0);//this.getNextHighestDepth());
        newmc._x = (Stage.width-newmc._width)/2;
        newmc._y = (Stage.height-newmc._height)/2; //позиционируем по центру
        newmc._width=newmc._width*2;
        newmc._height=newmc._height*2; // увеличиваем
        mc._alpha=30;
        mk1._visible=false; //прячем кнопку
        //trace(newmc.st1._x);
        //trace(newmc.st1._y);
newmc.clo.onRelease=function(){    // кнопка закрыть
        _root.newmc.removeMovieClip();//unloadMovie();
        mc._alpha=100;
        mk1._visible=true;
}
newmc.st1.onRollOver=function(){ // показать хинт
        hint._visible=true;
        hint.swapDepths(0);
}       
newmc.st1.onRollOut=function(){ //спрятать хинт
        hint._visible=false;
}
}

Если выпоняется
Код:

newmc.st1.onRollOver=function(){ // показать хинт
        hint._visible=true;
        hint.swapDepths(0);
}

То если нажать на на закрыть выполняется все кроме
Код:

_root.newmc.removeMovieClip();

Fernando Costa 15.11.2007 14:16

видимо проблема с глубинами. протрейсьте глубины ваших мувиков. Мувиклипы могут ремовиться только если они на неотрицательной глубине.

repz 15.11.2007 14:36

2 Fernando Costa:
Извеняюсь, а как протрейсить глубину
trace (newmc.???)
и повысить ее до удаления? спс

CrazyFlasher 15.11.2007 14:51

Код:

trace (newmc.getDepth());

repz 15.11.2007 14:54

2 CrazyFlasher:
спс
Пробывал, выдает "underfined".

Решил проблему добавлением в код закрытия swapDepths(0);

А можна, как-нить по другому ее решить?

Wolsh 15.11.2007 23:38

У Вас то хинт на ноль, то ньюмс... Вы уж разберитесь с глубинами, на одной глубине два клипа не могут существовать. Можно просто перекинуть основной клип на положительную глубину СРАЗУ, и потом спокойно проводить операции. Т.е. проблема в том, что Вы смешали два стиля проектирования - пытаетесь пользоваться и таймлайновой анимацией, и программированием одновременно. Имхо, либо аттачьте из библиотеки ВСЁ, либо забрасывайте наверх всё нарисованное руками (и соотв. лежащее на отрицательной глубине) сразу при запуске.

terbooter 16.11.2007 08:17

unloadMovie удаляет и с отрицательных глубин

repz 16.11.2007 18:05

2 Wolsh:
Спасиб, все гружу из библиотеки.

2 terbooter:
Может и удаляет, но в моем случае (так, как он описан) не работает.


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

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