Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 08.11.2003, 16:05
IUnknown вне форума Посмотреть профиль Отправить личное сообщение для IUnknown Найти все сообщения от IUnknown
  № 1  
IUnknown

Регистрация: Jan 2003
Сообщений: 41
По умолчанию Неработает Loop в MX

Привеь. У меня есть три именованных фрейма:

# Фрейм start
var nRand = random(20) + 10;
gotoAndPlay('repeate');

# Фрейм repeate
trace(nRand);

if (nRand == 0){
gotoAndStop('finish');
} else {
nRand--;
gotoAndPlay('repeate');
}

# Фрейм finish
stop;

По идее должно быть так: в первом фрейме получаем число. идем на второй фрейм. там число уменьшаем до нуля, с каждым разом фрейм переходит сам на себя, и потом переходим на третий. Но у меня получается так, что при выполнении функции gotoAndPlay('repeate'); происходит переход на третий фрейм finish, там игнорируется функция stop; и происходит переход на первый фрейм. Почему???????
Ведь все правильно. Сначала у меня небыли именованные фреймы, но что бы быть уверенным я дал им имена и изменил код. Но все равно не работает.

спасибо.

Старый 08.11.2003, 16:07
IUnknown вне форума Посмотреть профиль Отправить личное сообщение для IUnknown Найти все сообщения от IUnknown
  № 2  
IUnknown

Регистрация: Jan 2003
Сообщений: 41
я приаттачил исходник.
Вложения
Тип файла: zip rect.zip (33.1 Кб, 317 просмотров)

Старый 08.11.2003, 16:47
opex вне форума Посмотреть профиль Отправить личное сообщение для opex Найти все сообщения от opex
  № 3  
opex
[+1.3 05.04.09]
 
Аватар для opex

Регистрация: Sep 2003
Адрес: Где-то рядом.
Сообщений: 686
Отправить сообщение для opex с помощью ICQ Отправить сообщение для opex с помощью Skype™
можед быть так
Вложения
Тип файла: zip rect.zip (33.2 Кб, 310 просмотров)
__________________
Бойтесь китайцев, компы приносящих!

Старый 08.11.2003, 17:03
IUnknown вне форума Посмотреть профиль Отправить личное сообщение для IUnknown Найти все сообщения от IUnknown
  № 4  
IUnknown

Регистрация: Jan 2003
Сообщений: 41
Дык в файле ни каких изменений, все так же, как и было. я чего то непонимаю?


Ага. там появился еще один фрейм на слое Rect. только зачем? и как это влияет на выполнение срипта. Я снова попробовал запустить дебаг и после выполнения функции gotoAndPlay('repeate') скрипт переходит на слой финиш, а не на слой репиат. Я хочу, что бы квадратик пропадал со временем. Этого не добиться если там есть символ на последнем фрейме.


Последний раз редактировалось IUnknown; 08.11.2003 в 17:06.
Старый 08.11.2003, 18:12
major вне форума Посмотреть профиль Отправить личное сообщение для major Найти все сообщения от major
  № 5  
major
 
Аватар для major

Регистрация: Jul 2003
Адрес: SPb
Сообщений: 125
goto... на самого себя не выполняется в принципе. Т.е. если goto... на тот же фрейм, где головка плеера уже находится, то команда игнорируется.

Старый 08.11.2003, 18:25
sergwizard вне форума Посмотреть профиль Отправить личное сообщение для sergwizard Посетить домашнюю страницу sergwizard Найти все сообщения от sergwizard
  № 6  
sergwizard
 
Аватар для sergwizard

Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
Фрейм не может переходить сам на себя. У тебя получается так: плэйер считывает с первого фрейма значение nRand и переходит на второй фрейм. Во втором фрейме он трэйсит значение nRand и, если оно не равно 0 (а это значение не может быть равно 0 по определению), уменьшает значение nRand на единицу и выполняет директиву gotoAndPlay(“repeate”). Это значит, что плэйер не задерживается на этом фрейме, а ИГРАЕТ дальше. Фактически, он переходит на третий фрейм, не считывая кода (“stop”) на нем. Но чисто визуально мы можем определить такой переход. С третьего фрейма опять происходит переход на первый фрейм. Считывается новое значение nRand и все повторяется бесконечно.
Чтобы все получилось, как ты хочешь, тебе надо сделать еще один дополнительный фрейм. Смотри аттачмент.
А вообще-то, надо учиться делать все без фремов. Циклы ведь можно писать и в одном фрейме, применяя movieClip.onEnterFrame. Как это делать, показано во втором примере.
Вложения
Тип файла: zip rects.zip (39.6 Кб, 336 просмотров)
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный.
(S.Wizard)

Старый 08.11.2003, 18:27
IUnknown вне форума Посмотреть профиль Отправить личное сообщение для IUnknown Найти все сообщения от IUnknown
  № 7  
IUnknown

Регистрация: Jan 2003
Сообщений: 41
я до этого уже дошел 15 мин назад. Решил это тем, что сделал еше один пустой фрейм между первым и вторым. и теперь при декременте числа иду на второй фрейм, а он потом переходит на третий, где вся операция повторяется снова. Разве в флешь 5 такая фича была? Кажется нет, иначе как же работают все эти прелоадеры? В общем работает, всем спасибо.

Создать новую тему   Часовой пояс GMT +4, время: 11:01.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 11:01.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.