Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Навигация по сайту, При нажатии кнопки переход в разные ... 
:(
    Опции темы
Ilc
Дата 31.3.2011, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 31.3.2011

Репутация: нет
Всего: нет



Доброе утро.

Есть код

movieClip_2.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndPlayFromFrame_2);

function fl_ClickToGoToAndPlayFromFrame_2(event:MouseEvent):void
{
gotoAndPlay(5);
}

При нажатии на кнопку отправляет на кадр указанный в скобках.

А КАК СДЕЛАТЬ ТАК, ЧТОБЫ СКАЖЕМ ПРИ НАХОЖДЕНИИ С 1 ПО 20 КАДР И НАЖАТИИ НА КНОПКУ МЕНЯ ПРЕМЕСТИЛИ НА 40 кадр, ПРИ НАХОЖДЕНИИ С 21 ПО 30 И НАЖАТИИ НА ТУ ЖЕ КНОПКУ – ПЕРЕМЕСТИЛИ НА 50 и т. д (кадры не важны, главное суть ))? Т. е. как прописать в функции условие нахождения в определенном диапазоне?

Я понимаю что нужно написать, что то, типа если диапазон такой- то, отправка туда, такой, в другое место.
Но я не владею языком, можете подсказать?

PM MAIL   Вверх
ksili
Дата 31.3.2011, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: нет
Всего: 17



Код

function fl_ClickToGoToAndPlayFromFrame_2(event:MouseEvent):void
{
 var d:int = currentFrame/20;
 gotoAndPlay(d*20 + 20);
}



Добавлено через 2 минуты и 26 секунд
или так:
Код

function fl_ClickToGoToAndPlayFromFrame_2(event:MouseEvent):void
{
 if(currentFrame <= 20)   gotoAndPlay(40);
 else if(currentFrame <= 30)   gotoAndPlay(50);
 else if(currentFrame <= 100)   gotoAndPlay(110);
 ....
}



--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
Ilc
Дата 31.3.2011, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 31.3.2011

Репутация: нет
Всего: нет



 smile  
Спасибо огромное!!!
На днях собираюсь купить книгу " ActionScript 3.0 для Flash. Подробное руководство" и сам во всем разобраться)
PM MAIL   Вверх
Ilc
Дата 22.4.2011, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 31.3.2011

Репутация: нет
Всего: нет



попробовал код 
Код

button_32.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndPlayFromFrame_25);

function fl_ClickToGoToAndPlayFromFrame_25(event:MouseEvent):void
{
    if(currentFrame <= 130)   gotoAndPlay(131);
  else if(currentFrame >= 161)   gotoAndPlay(665);
  else if(currentFrame >= 192)   gotoAndPlay(824);
  else if(currentFrame >= 223)   gotoAndPlay(985);
}



но проблема в том что
Код

 if(currentFrame <= 130)   gotoAndPlay(131);
 работает

а

Код

 else if(currentFrame >= 161)   gotoAndPlay(665);
  else if(currentFrame >= 192)   gotoAndPlay(824);
  else if(currentFrame >= 223)   gotoAndPlay(985);


выдает результат не зависимо от кадра, как будто я всегда нахожусь дальше 161 кадра
можно это как то исправить?
PM MAIL   Вверх
ksili
Дата 22.4.2011, 05:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: нет
Всего: 17



по идее везде должно быть <=


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
Maksys
Дата 22.4.2011, 05:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Future Splasher
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 15.6.2005
Где: Екатеринбург

Репутация: нет
Всего: 17



Цитата(Ilc @  22.4.2011,  03:29 Найти цитируемый пост)
button_32.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndPlayFromFrame_25);
function fl_ClickToGoToAndPlayFromFrame_25(event:MouseEvent):void
{
    if(currentFrame <= 130)   gotoAndPlay(131);
  else if(currentFrame >= 161)   gotoAndPlay(665);
  else if(currentFrame >= 192)   gotoAndPlay(824);
  else if(currentFrame >= 223)   gotoAndPlay(985);

Так давайте размышлять как компилятор:
1. я нахожусь на кадре 30 и нажали кнопку, if(currentFrame <= 130)   gotoAndPlay(131); таааак 30 <=130? ну да меньше, тогда переходим на кадры 131. Все точка я вышел из обработчика спасибо.
2. я нахожусь на кадре 180 и нажали кнопку, if(currentFrame <= 130)   gotoAndPlay(131);тааак я на кадре 180 <= 131, не нихера, хм тогда else if(currentFrame >= 161)   gotoAndPlay(665); 180 >= 161? Ясень пень больше, переходим на кадр 665. Все точка выхожу из обработчика событий.
и т.д.

Еще вопросы есть?



--------------------
 С уважением, BiMaWa™©.
user posted image
user posted image
PM MAIL ICQ Skype GTalk   Вверх
Ilc
Дата 22.4.2011, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 31.3.2011

Репутация: нет
Всего: нет



Цитата(Maksys @ 22.4.2011,  05:42)
Цитата(Ilc @  22.4.2011,  03:29 Найти цитируемый пост)
button_32.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndPlayFromFrame_25);
function fl_ClickToGoToAndPlayFromFrame_25(event:MouseEvent):void
{
    if(currentFrame <= 130)   gotoAndPlay(131);
  else if(currentFrame >= 161)   gotoAndPlay(665);
  else if(currentFrame >= 192)   gotoAndPlay(824);
  else if(currentFrame >= 223)   gotoAndPlay(985);

Так давайте размышлять как компилятор:
1. я нахожусь на кадре 30 и нажали кнопку, if(currentFrame <= 130)   gotoAndPlay(131); таааак 30 <=130? ну да меньше, тогда переходим на кадры 131. Все точка я вышел из обработчика спасибо.
2. я нахожусь на кадре 180 и нажали кнопку, if(currentFrame <= 130)   gotoAndPlay(131);тааак я на кадре 180 <= 131, не нихера, хм тогда else if(currentFrame >= 161)   gotoAndPlay(665); 180 >= 161? Ясень пень больше, переходим на кадр 665. Все точка выхожу из обработчика событий.
и т.д.

Еще вопросы есть?

Как работает компилятор мне понятно, и
Код

 if(currentFrame <= 130)   gotoAndPlay(131);
  else if(currentFrame >= 161)   gotoAndPlay(665);

работает хорошо
А вот когда я нахожусь на кадре 200 
Код

else if(currentFrame >= 192)   gotoAndPlay(824);

меня все равно прекидывают, как будто я нахожусь на 
Код

 else if(currentFrame >= 161)   gotoAndPlay(665);


Может есть проблема в том что  скажем  200 больше и 161 и 192, и условие которое прописано первее, первее срабатывает?
PM MAIL   Вверх
ksili
Дата 22.4.2011, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: нет
Всего: 17



Цитата(Ilc @  22.4.2011,  13:45 Найти цитируемый пост)
Может есть проблема в том что  скажем  200 больше и 161 и 192, и условие которое прописано первее, первее срабатывает?

тебе об этом и толкуют. Размышляй как компилятор - сверху вниз.


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
Ilc
Дата 22.4.2011, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 31.3.2011

Репутация: нет
Всего: нет



Всех благодарю за помощь!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ActionScript 3 | Следующая тема »


 




[ Время генерации скрипта: 0.0793 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.