PDA

Просмотр полной версии : Управление с приаттаченного мувика


Wlspartak
29.07.2010, 17:22
Простой пример:На основном таймлайне(1-й фрейм) есть кнопка (btn)- аттачит мувик, в котором есть кнопка btn1. Нужно по нажатию btn1, перейти на 2-й фрейм. Что не так?

stop();
_lockroot=true;
btn.onPress = function() {
_root.attachMovie("my_mc","my_mc2",this.getNextHighestDepth(), {_x:100, _y:100});
}
this.my_mc2.btn1.onPress = function() {
_root.gotoAndStop(2)
}

Хемуль
29.07.2010, 17:34
2 Wlspartak:
мувик, в котором есть кнопка btn2
this.my_mc2.btn1.onPress

Wlspartak
30.07.2010, 10:22
Видно от жары, просто опечатка- в приаттаченном мувике кнопка btn1. Исправил.

Хемуль
30.07.2010, 12:36
2 Wlspartak:
Ну, давайте вместе читать ваш код и смотреть, как он будет исполняться:

1.
stop();
Останавливается проигрывание того обьекта, на таймлайне которого прописан код.

2.
_lockroot=true;
Запирается _root.

3.
btn.onPress = function() { _root.attachMovie("my_mc","my_mc2",this.getNextHighestDepth(), {_x:100, _y:100}); }
Для кнопки btn определяется обработчик события onPress, который при нажатии добавит на сцену обьект из библиотеки с идентификатором my_mc, дасть ему имя my_mc2 и разместит как надо.

4.
this.my_mc2.btn1.onPress = function() { _root.gotoAndStop(2) }
Обьекту this.my_mc2.btn1 назначается обработчик события onPress.
Печаль вся в том, что нет у вас этого обьекта на сцене на этот момент. Не к чему обработчик привязывать. Ведь у вас my_mc2 присоединяется на сцену только по нажатию на кнопку btn.

Вам нужно запихнуть последние три строки из кода, представленного вами в первом сообщении темы, в тело функции обработчика btn.onPress. То есть, создаём мувиклип и тут же назначаем ему обработчик.

Wlspartak
30.07.2010, 14:45
Ну спасибо, а то я уже голову "сломал", вроде все правильно, а не работает.

Хемуль
30.07.2010, 14:50
2 Wlspartak:
Так в том то и соль, что всё работает правильно. Именно так, как вы написали. ^_^
Если бы это был AS3, получили бы ошибку, а так у вас флешка молча не находит обьект и игнорирует его.