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

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

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

Регистрация: May 2007
Сообщений: 9
По умолчанию делаем плавное перемещение объекта

народ, подскажите такую вещь... Я изменяю положение прямоугольника в клипе, делая это в цикле; нужна задержка, чтобы двигался прямоугольник плавно... проблема: не знаю, как называется функция, пробовал delay=...; - не пашет...

Старый 21.06.2007, 04:17
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 2  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
setTimeout, setInterval, onEnterFrame.
Делать в цикле что-то плавно.. ну-ну.

Старый 21.06.2007, 04:37
Esaul вне форума Посмотреть профиль Отправить личное сообщение для Esaul Найти все сообщения от Esaul
  № 3  
Ответить с цитированием
Esaul

Регистрация: May 2007
Сообщений: 9
есть другой способ?

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

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

Старый 21.06.2007, 13:53
Esaul вне форума Посмотреть профиль Отправить личное сообщение для Esaul Найти все сообщения от Esaul
  № 5  
Ответить с цитированием
Esaul

Регистрация: May 2007
Сообщений: 9
пожалуй... справку почитал про функции - не разобрался... народ, киньте, кто сможет, пример. иначе сам, думаю, не разберусь...

Старый 21.06.2007, 14:28
mr.N вне форума Посмотреть профиль Отправить личное сообщение для mr.N Найти все сообщения от mr.N
  № 6  
Ответить с цитированием
mr.N
 
Аватар для mr.N

Регистрация: Sep 2005
Адрес: SPb
Сообщений: 852
Код:
this.onEnterFrame=function(){
my_mc._x++
}
где my_mc - имя мувиклипа в instance name

Старый 21.06.2007, 14:45
BigDan вне форума Посмотреть профиль Отправить личное сообщение для BigDan Найти все сообщения от BigDan
  № 7  
Ответить с цитированием
BigDan
 
Аватар для BigDan

Регистрация: Apr 2006
Адрес: Kiev
Сообщений: 1,675
Отправить сообщение для BigDan с помощью ICQ
и на крайний случай есть класс Tween)))

Старый 21.06.2007, 15:23
Esaul вне форума Посмотреть профиль Отправить личное сообщение для Esaul Найти все сообщения от Esaul
  № 8  
Ответить с цитированием
Esaul

Регистрация: May 2007
Сообщений: 9
Код:
while(Stolb_right._y<=high){
	  this.onEnterFrame=function(){
		Ruchka._y+= 100;
	  }
	  Stolb_left._y-= 1;
	  Stolb_right._y+= 1;
}
Сделал так... не пашет, вообще двигать перестал... что не так делаю? подскажите...


Последний раз редактировалось iNils; 21.06.2007 в 15:29.
Старый 21.06.2007, 15:37
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 9  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Esaul, для оформления своего кода, надо использовать теги [code][/code].
А ваш код содержит полный бред. onEnterFrame на каждый мувиклип может быть один единственный, а вы постоянно его назначаете, пока верно условие. Причем тут вообще while? Надо использовать if и внутри onEnterFrame
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 23.06.2007, 13:33
Esaul вне форума Посмотреть профиль Отправить личное сообщение для Esaul Найти все сообщения от Esaul
  № 10  
Ответить с цитированием
Esaul

Регистрация: May 2007
Сообщений: 9
Люди, посмотрите код, кому не лень... не могу понять, почему setInterval(main,100) не работает... Пока if-ы со stage в main не добавлял, "зацикливалось:" (60 раз нажать надо было и надпись "нажмите на кран А все время вылетала") там, где (stage==3)... Помогите... что делать?

Код:
var Ruchka_lev = Ruchka._y;
var Stolb_lev = Stolb_left._y;
var high;

//var stage=-1;

var stage=0;
Kran_C_used._visible=false;
Kran_A_used._visible=false;
Finish_process_btn.enabled=false;
Ruchka.enabled=false;
Kran_A.enabled=false;
Kran_C.enabled=false;

Start_process_btn.onRelease = function(){

function main(){
  
  //stage++;
  if(stage==0){
    Start_process_btn.enabled=false;
	Sovet_txt.htmlText="<B>Нажмите на кран A, т.е. откройте доступ\n к насосу.</B>";
	Kran_A.enabled=true;
	stage++;
  }
  
  if(stage==1){
    Kran_A.onRelease = function(){
      Kran_A_used._visible=true;
	  Kran_A._visible=false;
	  Kran_A.enabled=false;
	  Sovet_txt.htmlText="<B>Для того, чтобы накачать, нажмите на \nручку насоса.</B>";
	  Ruchka.enabled=true;
	  stage++;
    }
  }

  Ruchka.onRelease = function(){
	if(stage==2){
	  Sovet_txt.htmlText="<B>Подождите, когда разность столбиков в \nстанет равной 15-20см. Система автоматически \nпрекратит подачу воздуха.</B>";
	  Ruchka.enabled=false;
	  Kran_A._visible=true;
	  Kran_A_used._visible=false;
	  stage++;
	}
	if(stage==3){
	  high=Stolb_lev+60;
	  if(Stolb_right._y<=high){
	    Ruchka._y+= 5;
	    if(Stolb_right._y<=high){
	      Stolb_left._y-= 1;
	      Stolb_right._y+= 1;
	    }
	    if(Ruchka._y>=Ruchka_lev+100)
	      Ruchka._y=Ruchka_lev;
	  }
	  stage++;
	}
	if(stage==4){
	  Sovet_txt.htmlText="<B>Подождите установления \nтермодинамического равновесия.</B>";
	  stage++;
	}
	if(stage==5){
	  if(Stolb_right._y>=high-5-random(4)){
	    Stolb_left._y+= 1;
	    Stolb_right._y-= 1;
	  }
	  stage++;
	}
	if(stage==6){
	  Sovet_txt.htmlText="<B>Откройте кран C, открыв доступ к \nатмосфере.</B>";
	  Kran_C.enabled=true;
	  stage++;
	}
  }

  Kran_C.onRelease = function(){
	if(stage==7){
	  Kran_C.enabled=false;
	  Kran_C._visible=false;
	  Kran_C_used._visible=true;
	  stage++;
	}
	if(stage==8){
	  if(Stolb_right._y>=Stolb_lev){
	    Stolb_left._y+= 1;
	    Stolb_right._y-= 1;
	  }
	  stage++;
	}
	if(stage==9){
	  Kran_C._visible=true;
	  Kran_C_used._visible=false;
	  Sovet_txt.htmlText="<B>Дождитесь термодинамического равновесия.</B>";
	  stage++;
	}
	if(stage==10){
	  if(Stolb_right._y<=Stolb_lev+6+random(3)){
	    Stolb_left._y-=1;
	    Stolb_right._y+= 1;
	  }
	  stage++;
	}
	if(stage==11){
	  Sovet_txt.htmlText="<B>Нажмите кнопку End для завершения\n опыта.</B>";
	  Finish_process_btn.enabled=true;
      stage++;
	}
  }

  Finish_process_btn.onRelease = function(){
	if(stage==12){
	  if(Stolb_left._y!=Stolb_lev){
	    Stolb_left._y+= 1;
	    Stolb_right._y-= 1;
	  }
	  stage++;
	}
	if(stage==13){
	  Start_process_btn.enabled=true;
	  Finish_process_btn.enabled=false;
	  Sovet_txt.htmlText="<B>Нажмите кнопку Start, чтобы начать работу.</B>";
     // stage=-1;
	}
  }
}

setInterval(main,100);
}
Интересные вещи начинают происходить, если в тело main поставить stage=0; (в самое начало) и убрать условие (stage==3), увеличив в (stage==2) не на один, а на два...
Так вот, функция начинает "вроде" работать: только на объект Ruchka приходится кликать 60 раз, чтобы Stolb_right(/left) достиг нужного уровня. После этого "сказка" прекращается...


Последний раз редактировалось Esaul; 23.06.2007 в 14:03.
Создать новую тему Ответ Часовой пояс GMT +4, время: 14:51.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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