PDA

Просмотр полной версии : Связь кнопки с MovieClip


Larionov_E
21.01.2010, 15:57
Доброго времени суток! Легкий вопрос, так как только учусь АS. :wacko: У меня есть кнопка, и есть MovieClip который я создал через Insert => New Symbol... в клипе пресудствует анимация. Как создать воспроизведение этого клипа, после нажатия на кнопку. И возможно ли воспроизведение этого клипа(при нажатии на кнопку), не перетаскивая его на шкалу времени ? Зарание благодарен.

Hauts
21.01.2010, 16:05
Если клипа нет ни на основной временной шкале, ни на временной шкале другого клипа, который лежит на основной, считайте, что его не существует, и сделать с ним вы ничего не можете. По крайней мере до тех пор, пока клип не появится на сцене или в другом клипе, который есть на сцене ("вложенность" клипа в другие не имеет значения).

Да, управление кнопкой сделать возможно, но конкретный код зависит от того, куда вы ее поместите (на какую временную шкалу), и какое именно управление вам нужно.

mr_pol
21.01.2010, 16:07
задайте имя клипу mc в instance name. а в кнопке напишите
on (release) {
mc.play();
}

Hauts
21.01.2010, 16:17
mr_pol, тогда уж mc.stop() поставить, чтоб эффект был.

И зачем писать действия в клипе? Чтобы потом еще больше вопросов было, почему не работает?

Larionov_E, разместите на основной временной шкале ваш клип (перетащив его из библиотеки на сцену), и таким же образом перетащите кнопку, поверх этого клипа. В панели "Properties" назовите клип (напишите в поле instance name) "mc", а кнопку "btn" (например). Потом выделите кадр и нажмите F9. В окне действий введите следующее:


btn.onPress = function(){
mc.stop();
}


В итоге при нажатии на кнопку, мультик остановится.

udaaff
21.01.2010, 16:29
задайте имя клипу mc в instance name. а в кнопке напишите
on (release) {
mc.play();
}
Во-первых код этот пишется не в кнопке, а на кнопке, и во-вторых:

Правила разделов "ActionScript", "ActionScript 3", "Flex" и "Общие вопросы"

6. Вам не разрешаеться постить в данном разделе примеры с использованием обработчиков on(), onClipEvent(), или методов loadVariables/loadVariablesNum.
не стоит пользоваться методами и обработчиками, которые использовались в 2000ом году, не стоит учить этому других.

Larionov_E
21.01.2010, 16:33
Все зделал как написали выше. Ничего не поменялось =) Вот исходник

udaaff
21.01.2010, 16:40
На сцене должно быть два мувика с именами: button и mc.
Код в кадре:
button.onRelease = button_onReleaseHandler;

function button_onReleaseHandler():Void
{
mc.stop();
}

Hauts
21.01.2010, 16:42
Потому, что вы сделали не то. Читайте внимательнее.

Larionov_E
21.01.2010, 16:58
Всем большое спасибо. Проблема была в незнании приминения поля instance name =)

mr_pol
21.01.2010, 19:36
udaaff, ок)

udaaff
21.01.2010, 22:15
Я, наверное, немного путано объясню... Не подходит такой путь - поля Quality и QualityStatus работают для проверки свзи с сервером ввода-вывода, а у нас сервер-источник тегов. Не работают эти поля таким образом...
А за перезапуск обмена спасибо большое, немного втупил.
Это что, вообще, было?

mr_pol
22.01.2010, 01:50
кстати, если на кнопке можно написать, например, так:
on (release, rollOver, rollOut) {
mc.play();
}

то как такое написать в кадре в виде, типа btn.onRelease = function()?

Hauts
22.01.2010, 07:32
Вы шутите?

btn.onRelease = btn.onRollOver = btn.onRollOut = function(){
mc.play();
}


Более того, можно и так написать:


myButton_1.onPress = myButton_2.onPress = function(){
this._alpha = 50;
}

mr_pol
22.01.2010, 11:48
нет, не шучу, просто не знал. спасибо)