Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: nextFrame();
Flash Zone Forum > Macromedia Flash > ActionScript
Ben-Gun
Есть мувик ball с анимацией внутри другого мувика - form.
Почему код для перемещения символа работает, а код для перемещения в следующий фрейм анимации символа не работает?
on (release, keyPress "<Left>") {
form.ball._x += 10;
}
***
on (release, keyPress "<Left>") {
form.ball. nextFrame();
}


MustLive
Цитата
form.ball. nextFrame();

Ben-Gun

Должен работать, если правильно записать. Возможно ты указал лишний пробел, как это показано в твоём примере кода (перед nextFrame).
Ben-Gun
Цитата(MustLive @ 14.11.2012 - 01:49) *
Ben-Gun
Должен работать, если правильно записать. Возможно ты указал лишний пробел, как это показано в твоём примере кода (перед nextFrame).

я перед тестированием жму Auto format, и на такой пробел Action не ругаетсяsmile.gif в коде ошибки нет, просто, может код не полный, чтобы при таких заданных условиях срабатывал nextFrame();
вот _x, _alpha, _rotation, _xscale срабатывают, а заставить перейти в следующий кадр не могу)
посмотри исходник (Flah8)
form.ball.rar
chingachgoog
На мувике ВНУТРИ которого находится клип ball нет имени, а должно быть имя form
Во-вторых в самом клипе ball только один кадр )))
MustLive
Цитата
Во-вторых в самом клипе ball только один кадр )))

Это всё объясняет smile.gif. И это можно было сделать "во-первых", т.к. с создания более одного кадра в мувике и нужно было автору начинать перед использованием nextFrame().

Касательно же первого пункта. То удивительно, что код передвижения работал при том, что имя form не было указано для мувика. Или оба действия д.б. работать, или оба не работать.

Цитата
я перед тестированием жму Auto format

Ben-Gun, на Auto format надеяться не нужно, а нужно сразу писать корректный код (в том числе синтаксически). Сразу привыкай после точки перед названием свойства или метода не ставить пробел. Как это принято в C++ и других языках с подобным синтаксисом, в том числе и в ActionScript. Проблема здесь не в коде, а на сцене ролика, как уже было сказано, но и синтаксис не забывай правильно записывать. Как и не забывай добавлять кадры в мувики wink.gif.
Ben-Gun
 спасибо за ответы! разобрался)
хотя проблема была не в отсутствии Instance name (для файла, чтобы скинуть его на форум, в спешке забыл вписать), и не в том, что у символа ball один кадр (там их три, и во всех мяч находится в разных положениях; chingachgoog, ты, наверное, дважды кликнул на символе ball в библиотеке -  и зашел тем самым в его shape) smile.gif
путаница возникла с имена клипов в коде:
например, чтобы увеличить (повернуть, сдвинуть, изменить прозрачность) вложенный ball, нужно прописать оба имени: form.ball.
on (release, keyPress "<Left>") {
form.ball._xscale +=20
}

а чтобы применить nextFrame(); для вложенного символа достаточно только имени form,
on (release, keyPress "<Left>") {
form.nextFrame();
}
причем, если вписать оба имени, ничего происходить не будет.
MustLive
Ben-Gun, молодец, что разобрался smile.gif. Рады были помочь.

Во флешках, будь-то оригинал, или копия сделанная для того, чтобы показать на форуме, всегда указывай Instance name для всех объектов, с которыми ты работаешь в AS.

Цитата
причем, если вписать оба имени, ничего происходить не будет.

Это странная ситуация. Ибо если ты обращаешься к form.ball, то и изменения будут для клипа ball (как то смещение по оси x). А если ты обращаешься к form, как то form.nextFrame(), то переход на следующий кадр будет в мувике form. Использование абсолютных путей может помочь. Но раз у тебя заработало, то и хорошо.
Русская версия IP.Board © 2001-2013 IPS, Inc.