![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Aug 2007
Сообщений: 124
|
Хай. Есть основной фильм в конце которого задан вот этот код
из которого видно, что после дватцати секунд фильм начнет свое проигрывание из 4го кадра. К оснвоному фильмоу путем loadMovie("carusel.swf", carusel), подгружаю другой мувик где на кнопку прописываю clearInterval(getBack). Но этот код не срабатывает. Где я сделал ошибку? |
|
|||||
|
ветеран форума
|
getBack находится на уровне видимости _root, а кнопка в подгружаемом клипе находится на уровне видимости _root.carusel.имяКнопки, где переменной getBack никогда не было. Вывод - нужно указывать правильный путь к переменной в подгружаемом мувике.
__________________
4am is time to rock |
|
|||||
|
Регистрация: Aug 2007
Сообщений: 124
|
to DarkLight: а я думал, что setInterval and removeInterval глобальные функции, и не важно из какой части клипа я ее вызываю.
Т.е по твоему если я пропишу clearInterval(_root.getBack) в клипе, то все должно заработаь? |
|
|||||
|
ветеран форума
|
да (кроме случая, когда подгружаемому swf принудительно установлен _lockroot = true)
setInterval является глобальной функцией в том смысле, что вызывать можно отовсюду, а вот getBack - обычная локальная переменная-число. От того, что мы скормили глобальной функции локальный аргумент, он сам глобальным не становится, что логично.
__________________
4am is time to rock |
|
|||||
|
Регистрация: Aug 2007
Сообщений: 124
|
to DarkLight: спасибо за разширенный ответ.
Нужет совет, а то у самого уже шарики за ролики заезжают. В основном фильме в конце стоит - var walkBack:Number = setInterval(goBack, 20000). В фильме есть мувик с двумя кнопками, при на жатии на btn1 происходит остановка интервала - clearInterval(_root. walkBack), а при нажатии на bnt2 должно произойти возобновление интервала. Вот здесь я и умучился. Не как не могу возобновить интервал. Не могу вызвать интервал из основной линейки walkBack при нажатии кнопки btn2, а при попытке создать второй интеварл в функции кнопки btn2 - var secondButtonInterval:Number = setInterval(goBackAgain, 20000) не могу его очистить из кнопки btn1. Проще говоря btn1 должна останавливать все интервалы, а btn2 должна возобновлять таймер. Последний раз редактировалось solo19770701; 20.11.2008 в 21:43. |
|
|||||
|
Регистрация: Aug 2007
Сообщений: 124
|
Всем доброго времени суток. Вобщем что я имею на данный момент:
//////// btn1
function released()
{
//BONUS Section
trace("released");
clearInterval(_root.getBack);
clearInterval(getUnReleased);
}
////// btn2
function unReleased()
{
trace ("unReleased");
function playAgain():Void
{
_root.gotoAndPlay(4);
carusel._alpha = 0;
meny_mc._alpha = 0;
clearInterval(getUnReleased);
trace( "unReleased button has been pushed");
};
var getUnReleased:Number = setInterval(playAgain, 6000);
//////////// root
carusel._alpha = 100;
stop();
function startAgain():Void
{
_root.gotoAndPlay(4);
carusel._alpha = 0;
meny_mc._alpha = 0;
clearInterval(getBack);
trace( "interval has been cleared");
};
var getBack:Number = setInterval(startAgain, 20000);
|
|
|||||
|
Регистрация: Nov 2008
Адрес: Москва
Сообщений: 52
|
getUnReleased определено только внутри функции unReleased и нигде больше, значит ниоткуда кроме как из этой функции его увидеть нельзя.
определите переменную getUnReleased в другом месте. |
|
|||||
|
Регистрация: Aug 2007
Сообщений: 124
|
to faust.d503: я пытался вынести var getUnReleased:Number = setInterval(playAgain, 6000); за пределы функции кнопки btn2, но в таком случае я теряю контроль над итервалом, т.е. идея закючалась в том что бы при нажатии кнопки срабатывал интервал.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 10:48. |
|
|
« Предыдущая тема | Следующая тема » |
|
|