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

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

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

Регистрация: Feb 2006
Сообщений: 36
По умолчанию как упростить

Люди как упростить этот код:
on (rollOver) {
_root.light.swapDepths(40);
startDrag(_root.light, true);
//объект воздействия d3
this.swapDepths(100);
new mx.transitions.Tween(this, "_xscale", null, this._xscale, 150, 5);
new mx.transitions.Tween(this, "_yscale", null, this._yscale, 150, 5);
//объект d1
this._parent.d1.swapDepths(96);
new mx.transitions.Tween(this._parent.d1, "_xscale", null, this._parent.d1._xscale, 120, 5);
new mx.transitions.Tween(this._parent.d1, "_yscale", null, this._parent.d1._yscale, 120, 5);
new mx.transitions.Tween(this._parent.d1, "_x", null, this._parent.d1._x, this._parent.d1._x += 1, 5);
new mx.transitions.Tween(this._parent.d1, "_y", null, this._parent.d1._y, this._parent.d1._y, 5);
//объект d2
this._parent.d2.swapDepths(98);
new mx.transitions.Tween(this._parent.d2, "_xscale", null, this._parent.d2._xscale, 130, 5);
new mx.transitions.Tween(this._parent.d2, "_yscale", null, this._parent.d2._yscale, 130, 5);
new mx.transitions.Tween(this._parent.d2, "_x", null, this._parent.d2._x, this._parent.d2._x += 1, 5);
new mx.transitions.Tween(this._parent.d2, "_y", null, this._parent.d2._y, this._parent.d2._y, 5);
//объект this._parent.d4
this._parent.d4.swapDepths(98);
new mx.transitions.Tween(this._parent.d4, "_xscale", null, this._parent.d4._xscale, 130, 5);
new mx.transitions.Tween(this._parent.d4, "_yscale", null, this._parent.d4._yscale, 130, 5);
new mx.transitions.Tween(this._parent.d4, "_x", null, this._parent.d4._x, this._parent.d4._x += 1, 5);
new mx.transitions.Tween(this._parent.d4, "_y", null, this._parent.d4._y, this._parent.d4._y, 5);
//объект d5
this._parent.d5.swapDepths(96);
new mx.transitions.Tween(this._parent.d5, "_xscale", null, this._parent.d5._xscale, 120, 5);
new mx.transitions.Tween(this._parent.d5, "_yscale", null, this._parent.d5._yscale, 120, 5);
new mx.transitions.Tween(this._parent.d5, "_x", null, this._parent.d5._x, this._parent.d5._x += 1, 5);
new mx.transitions.Tween(this._parent.d5, "_y", null, this._parent.d5._y, this._parent.d5._y, 5);
//объект d6
this._parent.d6.swapDepths(94);
new mx.transitions.Tween(this._parent.d6, "_xscale", null, this._parent.d6._xscale, 110, 5);
new mx.transitions.Tween(this._parent.d6, "_yscale", null, this._parent.d6._yscale, 110, 5);
new mx.transitions.Tween(this._parent.d6, "_x", null, this._parent.d6._x, this._parent.d6._x += 1, 5);
new mx.transitions.Tween(this._parent.d6, "_y", null, this._parent.d6._y, this._parent.d6._y, 5);
//объект c1
this._parent.c1.swapDepths(90);
new mx.transitions.Tween(this._parent.c1, "_xscale", null, }
on (rollOut) {
//объект воздействия d3
new mx.transitions.Tween(this, "_xscale", null, this._xscale, 100, 5);
new mx.transitions.Tween(this, "_yscale", null, this._yscale, 100, 5);
//свойства transition'а для объекта d1
new mx.transitions.Tween(this._parent.d1, "_xscale", null, this._parent.d1._xscale, 100, 5);
new mx.transitions.Tween(this._parent.d1, "_yscale", null, this._parent.d1._yscale, 100, 5);
new mx.transitions.Tween(this._parent.d1, "_x", null, this._parent.d1._x, this._parent.d1._x -= 1, 5);
new mx.transitions.Tween(this._parent.d1, "_y", null, this._parent.d1._y, this._parent.d1, 5);
//свойства transition'а для объекта d2
new mx.transitions.Tween(this._parent.d2, "_xscale", null, this._parent.d2._xscale, 100, 5);
new mx.transitions.Tween(this._parent.d2, "_yscale", null, this._parent.d2._yscale, 100, 5);
new mx.transitions.Tween(this._parent.d2, "_x", null, this._parent.d2._x, this._parent.d2._x -= 1, 5);
new mx.transitions.Tween(this._parent.d2, "_y", null, this._parent.d2._y, this._parent.d2, 5);
//свойства transition'а для объекта this._parent.d4
new mx.transitions.Tween(this._parent.d4, "_xscale", null, this._parent.d4._xscale, 100, 5);
new mx.transitions.Tween(this._parent.d4, "_yscale", null, this._parent.d4._yscale, 100, 5);
new mx.transitions.Tween(this._parent.d4, "_x", null, this._parent.d4._x, this._parent.d4._x -= 1, 5);
new mx.transitions.Tween(this._parent.d4, "_y", null, this._parent.d4._y, this._parent.d4, 5);
//свойства transition'а для объекта d5
new mx.transitions.Tween(this._parent.d5, "_xscale", null, this._parent.d5._xscale, 100, 5);
new mx.transitions.Tween(this._parent.d5, "_yscale", null, this._parent.d5._yscale, 100, 5);
new mx.transitions.Tween(this._parent.d5, "_x", null, this._parent.d5._x, this._parent.d5._x -= 1, 5);
new mx.transitions.Tween(this._parent.d5, "_y", null, this._parent.d5._y, this._parent.d5, 5);
//свойства transition'а для объекта d6
new mx.transitions.Tween(this._parent.d6, "_xscale", null, this._parent.d6._xscale, 100, 5);
new mx.transitions.Tween(this._parent.d6, "_yscale", null, this._parent.d6._yscale, 100, 5);
new mx.transitions.Tween(this._parent.d6, "_x", null, this._parent.d6._x, this._parent.d6._x -= 1, 5);
new mx.transitions.Tween(this._parent.d6, "_y", null, this._parent.d6._y, this._parent.d6, 5);
//свойства transition'а для объекта c1
new mx.transitions.Tween(this._parent.c1, "_xscale", null, this._parent.c6._y, this._parent.c6, 5);
}
Это естевственно только часть. Дело в том что он весит не много 54 кило, но вот при проигывании начинает зависать. Может есть проги для оптимизации кода. Спасибо

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

Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
А что ты, вообще, хочешь сделать? Для чего этот код? Может быть, лучше выложить исходник и сформулировать задачу?
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный.
(S.Wizard)

Старый 02.04.2006, 22:57
art85 вне форума Посмотреть профиль Отправить личное сообщение для art85 Найти все сообщения от art85
  № 3  
Ответить с цитированием
art85

Регистрация: Feb 2006
Сообщений: 36
По умолчанию подробнее

В принципе это и есть часть исходника. Извините весь код здесь выложить нельзя в связи с лимитами на кол-во символов, да и не нужно по-моему. А сделать я хочу следующее: при нажатии на один мувик остальные увеличивются "на спад". Например первый имеет размер 150%, второй 140%, третий 130% и т.д.Главный в середине а те которые подвергаются изменению вместе с ним находятся вокруг него. Главный мувик соответсвенно самый крупный остальные меньше

Старый 03.04.2006, 01:57
Homo Sapiens вне форума Посмотреть профиль Отправить личное сообщение для Homo Sapiens Посетить домашнюю страницу Homo Sapiens Найти все сообщения от Homo Sapiens
  № 4  
Ответить с цитированием
Homo Sapiens
 
Аватар для Homo Sapiens

Регистрация: Nov 2004
Адрес: Санкт-Петербург
Сообщений: 751
Ну так сделай программно. Зачем тебе tween? У тебя же все клипы в массиве (ведь верно?). Пробегайся по массиву и изменяй...
__________________
Всё гениальное просто.

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

Регистрация: Jun 2005
Адрес: Moscow - immigrate from Volgodonsk
Сообщений: 2,534
во-первых используй code
во-вторых это полная жесть :-)
вот чем отличается программист от аниматора :-)

Старый 03.04.2006, 12:02
art85 вне форума Посмотреть профиль Отправить личное сообщение для art85 Найти все сообщения от art85
  № 6  
Ответить с цитированием
art85

Регистрация: Feb 2006
Сообщений: 36
а как без tween'а сделать замедление анимации. И потом думаешь код будет легче если я буду менять св-ва мувиков в массиве. Там почти нет одинаково анимируемых мувиков. Каждый смещается немного по другому. И что значит программно, анимация и так сейчас программная не ключевыми же кадрами я это сделал. Вообще если кто то понял задачу если не сложно может бросите кусок кода как вы это видите. Спасибо

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

Регистрация: Jan 2006
Адрес: El Paso
Сообщений: 201
По умолчанию Пользовательский метод tweenTo

Во многих книжках приводится вот такой пример расширения класса MovieClip методом tweenTo
Код:
//MOVIECLIP CLASS EXTENSION
//$FPS - framerate in your film
MovieClip.prototype.tweenTo = function(targetsObj, time, callbackObj, callbackFunc, callbackArgs) {
	var noo;
	if (this.tweenControl) {
		noo = this.tweenControl;
	} else {
		noo = this.createEmptyMovieClip("tweenControl", ++this.depth);
	}
	noo.targetsObj = targetsObj;
	noo.callbackObj = callbackObj;
	noo.callbackFunc = callbackFunc;
	noo.callbackArgs = callbackArgs;
	noo.timespeed = time;
	noo.frameNum = 0;
	noo.frames = noo.timespeed*$FPS;
	noo.step_arr = new Array();
	var i = 0;
	for (var prop in noo.targetsObj) {
		noo.step_arr[i] = (noo._parent[prop]<=noo.targetsObj[prop] ? 1 : -1)*Math.abs((noo.targetsObj[prop]-noo._parent[prop])/noo.frames);
		i++;
	}
	noo.onEnterFrame = function() {
		this.frameNum++;
		i = 0;
		for (var prop in this.targetsObj) {
			this._parent[prop] += this.step_arr[i];
			i++;
		}
		if (this.frameNum == this.frames) {
			this.callbackObj[this.callbackFunc](this.callbackArgs);
			this.removeMovieClip();
		}
	};
};
Я использовал его при AS 1.0 активно, вполне удобное решение. Разберись в нем, тогда ты сможешь применять к одному объекту команду для изменения его сразу нескольких свойств. Как минимум, вместо четырех строчек кода у тебя будет не более двух.
Пример использования в коде:
Код:
myclip.tweenTo({_xscale:50,_yscale:150,_x:200,_y:2},3);
На самом деле существующий в AS 2.0 класс Tween вырос тоже примерно отсюда.
__________________
No war, make Flash.

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

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

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


 


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


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