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

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

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

Регистрация: Sep 2008
Адрес: Ukraine, Kerch
Сообщений: 127
Отправить сообщение для SarGun с помощью ICQ Отправить сообщение для SarGun с помощью Skype™
По умолчанию проблема с Tween

Подскажите почему у меня класс Tween, когда быстро водишь мышкой недоконца выполняет заданную анимацию?
исходник в приложении..
Вложения
Тип файла: rar proba.rar (69.0 Кб, 58 просмотров)

Старый 23.02.2009, 20:49
Fergus вне форума Посмотреть профиль Отправить личное сообщение для Fergus Найти все сообщения от Fergus
  № 2  
Ответить с цитированием
Fergus

Регистрация: Oct 2008
Адрес: Moscow
Сообщений: 130
Отправить сообщение для Fergus с помощью ICQ
Потому что класс Tween нормально не работает. Используйте пользовательские библиотеки, например GTween.
__________________
Jedem das Seine

Старый 23.02.2009, 20:53
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 3  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Кстати, можете рассказать, за что все так не любят стандартный Tween? При каких условиях он барахлит?
__________________
тонкий тролль, осеянный благодатью

Старый 23.02.2009, 20:59
SarGun вне форума Посмотреть профиль Отправить личное сообщение для SarGun Найти все сообщения от SarGun
  № 4  
Ответить с цитированием
SarGun
 
Аватар для SarGun

Регистрация: Sep 2008
Адрес: Ukraine, Kerch
Сообщений: 127
Отправить сообщение для SarGun с помощью ICQ Отправить сообщение для SarGun с помощью Skype™
Цитата:
Сообщение от Fergus Посмотреть сообщение
Используйте пользовательские библиотеки, например GTween.
а неподскажите где их достать?

Старый 23.02.2009, 21:11
Kuruki вне форума Посмотреть профиль Отправить личное сообщение для Kuruki Найти все сообщения от Kuruki
  № 5  
Ответить с цитированием
Kuruki

Регистрация: Jan 2008
Сообщений: 669
SarGun, вы присваиваете твин локальным переменным, которые удаляются после выполнения функции.

Старый 23.02.2009, 21:28
Fergus вне форума Посмотреть профиль Отправить личное сообщение для Fergus Найти все сообщения от Fergus
  № 6  
Ответить с цитированием
Fergus

Регистрация: Oct 2008
Адрес: Moscow
Сообщений: 130
Отправить сообщение для Fergus с помощью ICQ
Цитата:
Сообщение от GAIKER Посмотреть сообщение
Кстати, можете рассказать, за что все так не любят стандартный Tween? При каких условиях он барахлит?
Где-то видел сравнение работы твинов - легко поиском найдете - так там все твины пользовательские выдают 35-45 фпс, а адобовский твин что-то вроде 0.001... В реальности просто вешает флешплеер на объемных задачах. Но там для теста какая-то сумасшедшая нагрузка стоит, конечно.

Он начинает глючить когда их работает несколько. Сбивается, когда движущийся объект принимает события (мышиные, например).
__________________
Jedem das Seine

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

Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
TweenLite -> google.com

Старый 23.02.2009, 22:53
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 8  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Tween мега стабильный и самый быстрый. Юзаю flex и компилю в нем под 10, так подсунул ему библиотеку из flash cs3 и в этой ситуации tween не подводит.
По вашему коду, вы запускаете твины когда они еще не выполнились, в это же время создаете новые твины, которые должны разорвать объект в разные стороны, но твин добрый и он пытается что-то делать и флешка не вылетает. Вот рабочий код
Код:
import fl.transitions.easing.*;
import fl.transitions.Tween;
import fl.transitions.TweenEvent;
var arr:Array = [];
var ob:Object;
var c:int = 0;
var eff:int = 300;
for (var i:int = 0; i<10; i++) {
	for (var j:int = 0; j<10; j++) {
		var cont:Sprite = new Sprite();
		cont.x = (i+5) * (image.width/10);
		cont.y = (j+5) * (image.width/10);
		addChild(cont);
		var myBitmapData:BitmapData = new BitmapData(image.width / 10,image.height / 10);
		var rect:Rectangle = new Rectangle(0,0,image.width / 10,image.height / 10);
		var matrix:Matrix = new Matrix();
		matrix.tx = i * image.width / 10 * -1;
		matrix.ty = j * image.width / 10 * -1;
		myBitmapData.draw(image,matrix,null,null,rect,true);
		var bitmap:Bitmap = new Bitmap(myBitmapData);
		bitmap.x = bitmap.width / 2 * -1;
		bitmap.y = bitmap.height / 2 * -1;
		cont.addChild(bitmap);
		cont.addEventListener(MouseEvent.MOUSE_OVER, over);
		cont.addEventListener(MouseEvent.MOUSE_OUT, out);
		cont.name = ""+c;
		arr[c] = ob = new Object();

		ob.sp = cont;
		ob.i = 0;
		ob.tw = new Tween(ob, "i", None.easeNone, 0, 200, 2, true);
		ob.tw.addEventListener(TweenEvent.MOTION_CHANGE, twChange);
		ob.tw.stop();
		ob.done = false;
		ob.id = c;
		ob.x = cont.x;
		ob.y = cont.y;
		ob.finX = Math.random() * cont.x + cont.x / 2;
		ob.finY = Math.random() * cont.y + cont.y / 2;
		ob.indX = (ob.finX - ob.x)/100;
		ob.indY = (ob.finY - ob.y)/100;
		c++;
	}
}
removeChild(image);

function over(event:MouseEvent) {
	c = int(event.target.name);
	ob = arr[c];
	ob.tw.start();
		
	ob.finX = ob.x + (eff/2 - Math.random() *eff);
	ob.finY = ob.y + (eff/2 - Math.random() *eff);
	ob.indX = (ob.finX - ob.x)/100;
	ob.indY = (ob.finY - ob.y)/100;
		
	addChild(ob.sp);
}
function out(event:MouseEvent) {

}

function twChange(evt:TweenEvent):void
{
ob = evt.target.obj;
	if (ob.i<100){
		ob.sp.x = ob.x + ob.i * ob.indX;
		ob.sp.y = ob.y + ob.i * ob.indY;
	}
	else{
		ob.sp.x = ob.x + (200 - ob.i) * ob.indX;
		ob.sp.y = ob.y + (200 - ob.i) * ob.indY;
	}
}
Делается массив из объектов и к этим объекта привязываются твины, теперь работу твина нарушать нечему и он всегда выполниться дойдет и все такое.

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

Регистрация: Oct 2008
Сообщений: 14
Сам сталкивался с этим...
создай массив и пихай туда все твины
Код AS3:
var _tweens:Array = new Array();
var new_tween:Tween = new Tween(...);
_tweens.push(new_tween);
это поможет
переодически желательно очищать массив

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

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

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


 


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


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