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

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

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

Регистрация: Feb 2008
Сообщений: 37
По умолчанию onEnterFrame для нескольких объектов

здравствуйте!

может не совсем тема подходит, но просто не знаю в чем именно дело...
вот такой код:
Код:
_global.frames = 50;
_global.dx = 0.1;
but_1.onPress = function() {
	for (j=1; j<7; j++) {
		me = eval("m"+j);
		trace(me._rotation);
		var x = 0;
		var objR = 0;
		var k = Math.abs(objR-me._rotation);
		var a = Math.pow((k+dx)*(1/dx), 1/(frames+j*10));
		var b = Math.log(k+dx)/Math.log(a);
		me.onEnterFrame = function() {
			if (x<frames+j*10) {
				x++;
				trace(x)
				newR = Math.pow(1/a, x-b)-dx;
				me._rotation = objR+newR;
			} else {
				delete onEnterFrame;
				me._rotation = objR
			}
		};
	}
};
здесь кнопка but_1 и шесть объектов m1...m6 повернутых под 90 градусов...
по нажатии кнопки они должны плавно возвращаться к горизонтальному положению.....

но выполняется почему то только анимация последнего j....
но трейс (me._rotation) показывает повороты для всех j....

спасибо....

Старый 01.08.2008, 14:29
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Ну у вас же не возникает вопросов, почему в этом коде трейс показывает 2, а не 1:

Код:
j = 1;
onEnterFrame = function() {
    trace(j);
}
j = 2;
Так ведь?

Старый 01.08.2008, 15:11
Forcasigun вне форума Посмотреть профиль Отправить личное сообщение для Forcasigun Найти все сообщения от Forcasigun
  № 3  
Ответить с цитированием
Forcasigun
 
Аватар для Forcasigun

Регистрация: Feb 2008
Сообщений: 37
в этом не возникает....

но ведь у меня то j в цикле for, мне казалось, что в этом случае опреации для всех j должны производиться.... и сделать для каждого j onEnterFrame...

какой тогда выход из ситуации предлагаете?... (кроме все отдельно прописать)

Старый 01.08.2008, 15:35
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Цитата:
Сообщение от Forcasigun Посмотреть сообщение
в этом не возникает....

но ведь у меня то j в цикле for, мне казалось, что в этом случае опреации для всех j должны производиться.... и сделать для каждого j onEnterFrame...
Мой код по логике абсолютно аналогичен вашему, поэтому никакого другого поведения не будет.

Цитата:
Сообщение от Forcasigun Посмотреть сообщение
какой тогда выход из ситуации предлагаете?... (кроме все отдельно прописать)
Поискать на форуме ответ. Подобного рода проблемы постоянно возникают у начинающих программистов, поэтому ваш случай совершенно неуникален.

Старый 01.08.2008, 15:42
GreatRash вне форума Посмотреть профиль Отправить личное сообщение для GreatRash Найти все сообщения от GreatRash
  № 5  
Ответить с цитированием
GreatRash

Регистрация: Jun 2007
Сообщений: 118
Надо так писать:
Код:
me.onEnterFrame = rotate;

//...........................
// и потом уже вне цикла for
rotate = function() {
 тра ля ля;
}

Старый 01.08.2008, 15:43
Forcasigun вне форума Посмотреть профиль Отправить личное сообщение для Forcasigun Найти все сообщения от Forcasigun
  № 6  
Ответить с цитированием
Forcasigun
 
Аватар для Forcasigun

Регистрация: Feb 2008
Сообщений: 37
спасибо.... будем разбираться...

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

Регистрация: May 2008
Сообщений: 476
Цитата:
здесь кнопка but_1 и шесть объектов m1...m6 повернутых под 90 градусов...
по нажатии кнопки они должны плавно возвращаться к горизонтальному положению.....

но выполняется почему то только анимация последнего j....
но трейс (me._rotation) показывает повороты для всех j....

спасибо....
Код на _root:

Код:
but_1.onPress = function():Void
{
	this._parent.onEnterFrame = function():Void
	{
		for (var i:Number = 1; i<=6; i++)
			{
				this["mc"+i]._rotation+=1;
				if (this["mc"+i]._rotation == 90) 
				{
					delete this.onEnterFrame;
				}
			}
	};
}
__________________
Случайность, господа, это знаете ли непознанная необходимость.


Последний раз редактировалось Alex_beginner; 03.08.2008 в 14:31.
Старый 03.08.2008, 17:54
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Цитата:
Сообщение от GreatRash Посмотреть сообщение
Надо так писать:
Код:
me.onEnterFrame = rotate;

//...........................
// и потом уже вне цикла for
rotate = function() {
 тра ля ля;
}
Вы суть проблемы поняли или нет?

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

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

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


 


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


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