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

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.10.2005, 18:31
Bорон вне форума Посмотреть профиль Отправить личное сообщение для Bорон Посетить домашнюю страницу Bорон Найти все сообщения от Bорон
  № 1  
Ответить с цитированием
Bорон
 
Аватар для Bорон

Регистрация: Jun 2005
Адрес: Очень странное место
Сообщений: 329
Отправить сообщение для Bорон с помощью ICQ
По умолчанию Как получить из метки фрейма его номер ?

Доброго времени суток.
Есть Ф-я управляющая анимацией. (крутит мувики от точки до точки и обратно и т.д.)
Анимация маркирована для удобства метками (frame label).
Если в ф-ю поступает в качестве "от" и "до" параметров числа - все ок.
Если пробую использовать метки - глючит.
Подозреваю что дело в конструкции

Цитата:
x=this._currentframe+1;
if(x==this.to){
...
Так как х это число, а this.to - строка с именем метки.
Как бы их перевести корректно ?
Подскажите пожалуста.
__________________
Студия "Ночной народ" | http://nightfolk.net/

Старый 05.10.2005, 18:42
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Просто меток не существует в swf
Они только для редактирования, как только ты создаешь swf, все метки заменяются текущими числовым значением нужных кадров.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 05.10.2005, 19:23
Bорон вне форума Посмотреть профиль Отправить личное сообщение для Bорон Посетить домашнюю страницу Bорон Найти все сообщения от Bорон
  № 3  
Ответить с цитированием
Bорон
 
Аватар для Bорон

Регистрация: Jun 2005
Адрес: Очень странное место
Сообщений: 329
Отправить сообщение для Bорон с помощью ICQ
Ы.
В чем же тогда может быть загвоздка, если при вводе чиловых значений все ОК.
А когда метки - глючит....
Привожу на всяк случай полный код ф-и:

Цитата:
function play_both(from,to,obj,leng,st,dir,tr_mod){
switch(dir){
case 1:
obj.state="front";
break;
case 2:
obj.state="back";
break;
}
obj.leng=leng;
obj.from=from;
obj.to=to;
obj.tr_mod=tr_mod;
switch(st){
case 1:
obj.gotoAndStop(from);
break;
case 2:
tmp=((to-from)/2)+from;
obj.gotoAndStop(tmp);
break;
case 3:
obj.gotoAndStop(to);
break;
}
if(obj.tr_mod==1){
trace("start frame : "+obj._currentframe)
}

obj.onEnterFrame = function (){

switch (this.state) {

case "front":
x=this._currentframe+1;
if(x==this.to){
this.state="back";

if(obj.tr_mod==1){
trace("turn back: "+this._currentframe)
}
if(this.leng!==-1){
if(this.leng>0){
this.leng-=1;
}else{
this.stop();
if(obj.tr_mod==1){
trace("stop frame on turn back: "+this._currentframe)
}
this.onEnterFrame = function () {};
}
}
}
this.gotoAndStop(x);
break;

case "back":
x=this._currentframe-1;
if(x==this.from){

if(obj.tr_mod==1){
trace("turn front: "+this._currentframe)
}
this.state="front";
if(this.leng!==-1){
if(this.leng>0){
this.leng-=1;
}else{

if(obj.tr_mod==1){
trace("stop frame on turn front: "+this._currentframe)
}
this.stop();
this.onEnterFrame = function () {};
}
}

}
this.gotoAndStop(x);
}
break;
}

}
С уважением. Ворон.
__________________
Студия "Ночной народ" | http://nightfolk.net/


Последний раз редактировалось Bорон; 05.10.2005 в 19:25. Причина: Вместо quote написал query. Крыша едет.
Старый 05.10.2005, 19:28
Bорон вне форума Посмотреть профиль Отправить личное сообщение для Bорон Посетить домашнюю страницу Bорон Найти все сообщения от Bорон
  № 4  
Ответить с цитированием
Bорон
 
Аватар для Bорон

Регистрация: Jun 2005
Адрес: Очень странное место
Сообщений: 329
Отправить сообщение для Bорон с помощью ICQ
Синтаксис:
play_both( от , до ,ссылка на обьект , количество полуциклов , откуда начинать , направление , режим отладки)
__________________
Студия "Ночной народ" | http://nightfolk.net/

Старый 05.10.2005, 19:29
Bорон вне форума Посмотреть профиль Отправить личное сообщение для Bорон Посетить домашнюю страницу Bорон Найти все сообщения от Bорон
  № 5  
Ответить с цитированием
Bорон
 
Аватар для Bорон

Регистрация: Jun 2005
Адрес: Очень странное место
Сообщений: 329
Отправить сообщение для Bорон с помощью ICQ
В режиме отладки при использовании меток выводит только
trace("start frame : "+obj._currentframe)
А реферные фреймы проскакивает...
=(

Подскажите что то ?
__________________
Студия "Ночной народ" | http://nightfolk.net/


Последний раз редактировалось Bорон; 05.10.2005 в 19:31.
Старый 05.10.2005, 20:43
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 6  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Я же тебе ответил При запуске, все метки конвертируются в номера кадров. Они ни где не храняться и сравнивать с ними бесполезно.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Jun 2005
Адрес: Очень странное место
Сообщений: 329
Отправить сообщение для Bорон с помощью ICQ
Конвертируются. И что из этого следует?
Почему бесполезно ? С числом (константой) ведь сравнивать можно...
Или они НЕ заменяются числом ?
Что то я совсем запутался =(
Из твоего сообщения я сделал вывод, что нет разницы между использованием метки и числа так как при сборке в swf все метки заменяются числами. Я понял неправильно ?
Если правильно то почему с ними нельзя тогда сравнивать ?
А если нельзя сравнивать, то есть ли способ в as использовать в качестве атрибта метку ?
__________________
Студия "Ночной народ" | http://nightfolk.net/

Старый 06.10.2005, 02:36
Bорон вне форума Посмотреть профиль Отправить личное сообщение для Bорон Посетить домашнюю страницу Bорон Найти все сообщения от Bорон
  № 8  
Ответить с цитированием
Bорон
 
Аватар для Bорон

Регистрация: Jun 2005
Адрес: Очень странное место
Сообщений: 329
Отправить сообщение для Bорон с помощью ICQ
А бллин. понял. Метки конвертируются только если они в gotoAndPlay например. А в других случаях метка - просто текст.
Я правильно понял ?
И в этом случая поставленная задача не выполнима, так ?
Тогда может кто то подскажет идею как справится с такой проблемой. Есть клип с записью разных движений. Эти движения вызываются вышеуказанной ф-ей. Если надо изменить скорость движения - меняем количество фреймов. И все ранее указанные движения "плывут". Надо все числа "переписывать". Отсюда идея с метками. Как бы выпутатся ?
Можно конечно начать пложить бесчисленные переменные с связкой фрейм-движение. но это, извините извращение. Кроме того все связки все равно тогда придется править после каждой "подстройки" скорости.
Есть какие то идеи ? Поделитесь ?
__________________
Студия "Ночной народ" | http://nightfolk.net/

Старый 06.10.2005, 03:51
kruasan вне форума Посмотреть профиль Отправить личное сообщение для kruasan Найти все сообщения от kruasan
  № 9  
Ответить с цитированием
kruasan
 
Аватар для kruasan

Регистрация: May 2004
Адрес: Kiev
Сообщений: 704
Есть такая чудо-штука - broadcastMessage("...")
Фильм с твоими анимациями может генерировать события (широковещательная рассылка). Зарегестрируй его как вещателя:
AsBroadcaster.initialize(myClip);
Клип, который будет реагировать на эти события, зарегистрируй слушателем клипа myClip:
myClip.addListener(listenerClip);
В клипе myClip, в кадре с Анимацией 1 пишешь:
this.broadcastMessage("onAnimation1");
Т.е. вместо метки фрейма ты используешь сообщение.
При попадании на этот кадр будет генериться событие onAnimation1, которое "услышит" listenerClip.
Теперь можно написать: listenerClip.onAnimation1=function(){ твои действия при попадании на кадр с сообщением "onAnimation1"}

Таким образом ты отлавливаешь попадание на кадр с нужной анимацией без проверки номера кадра.

Чем это может помочь тебе?
Можно в цикле пробежаться по всем кадрам клипа myClip и получить номера кадров всех твоих анимаций. А перед пробегом написать:
listenerClip.onAnimation1=function(){anim1Frame=myClip._currentframe}
listenerClip.onAnimation2=function(){anim2Frame=myClip._currentframe}
listenerClip.onAnimation3=function(){anim3Frame=myClip._currentframe}
и т.д.

Должно сработать


Последний раз редактировалось kruasan; 06.10.2005 в 04:07.
Старый 06.10.2005, 04:19
kruasan вне форума Посмотреть профиль Отправить личное сообщение для kruasan Найти все сообщения от kruasan
  № 10  
Ответить с цитированием
kruasan
 
Аватар для kruasan

Регистрация: May 2004
Адрес: Kiev
Сообщений: 704
А можно еще проще:

В кадре с 1-й анимашкой пишем _root.anim1Frame=this._currentframe.
В кадре с 2-й анимашкой пишем _root.anim2Frame=this._currentframe.
и т.д.
Ну и делаем то же самое:
в цикле пробегаем по всем кадрам клипа myClip и получаем номера кадров всех твоих анимаций.
Затем юзаем уже номера кадров

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

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

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


 


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


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