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

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

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

Регистрация: Nov 2003
Адрес: Spb
Сообщений: 33
Отправить сообщение для vave с помощью ICQ
По умолчанию Странный глюк Tween...

Сделал код Для аттача из библиотеки рандомных символов и динамически запускаю твины для каждого циклом по его окончании... жуть
суть в том что если аттачить 1 символ твин выполняется для его одного 20 раз...
если аттачить 20 символов твин выполняется по 1му разу для каждого и в сумме все равно 20 раз...
потом все твины останавливаются

Код AS3:
import fl.transitions.*;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import flash.events.*;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.display.Sprite;
 
 
var MinW:int = parent.width - 100;
var MinH:int = parent.height - 100;
 
 
 
for (var j=1; j<10; j++)
{
	var newRandBox = Math.round(Math.random() * 4) + 1;
	var GenerName:String = "ColorBox" + newRandBox;
	var NewDefMC:MovieClip = new (getDefinitionByName(GenerName) as Class)() as MovieClip;
	this.addChild(NewDefMC);
 
	var TempNameObj = NewDefMC;
	var Sx = Math.random() * MinW;
	var Sy = Math.random() * MinH;
	var Ss = (Math.round(Math.random() * 10) / 10)+0.4;
	var Sa = (Math.round(Math.random() * 10) / 10)+0.1;
	StartMoveBox(TempNameObj,Sx,Sy,Ss,Sa);
}
function StartMoveBox(BoX, Sx,Sy,Ss,Sa)
{
 
	var NewTWx:Tween;
	var NewTWy:Tween;
	var NewTWscaley:Tween;
	var NewTWscalex:Tween;
	var NewTWa:Tween;
	var NewDuration = (Math.round((Math.random()+0.1)*10)/10)*10;
	var Ex = Math.random() * MinW;
	var Ey = Math.random() * MinH;
	var Es = (Math.round(Math.random() * 10) / 10)+0.4;
	var Ea = (Math.round(Math.random() * 10) / 10)+0.1;
 
 
	NewTWy = new Tween(BoX,"x",Back.easeOut,Sx,Ex,NewDuration,true);
	NewTWx = new Tween(BoX,"y",Back.easeOut,Sy,Ey,NewDuration,true);
	NewTWscalex = new Tween(BoX,"scaleX",Back.easeOut,Ss,Es,NewDuration,true);
	NewTWscaley = new Tween(BoX,"scaleY",Back.easeOut,Ss,Es,NewDuration,true);
	NewTWa = new Tween(BoX,"alpha",Back.easeOut,Sa,Ea,NewDuration,true);
 
	NewTWa.addEventListener(TweenEvent.MOTION_FINISH, funishTween);
 
	function funishTween(e:TweenEvent)
	{
		trace("end Starter");
		StartMoveBox(BoX, Ex, Ey,Es,Ea);
	}
 
}

Старый 05.02.2011, 13:19
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 2  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,283
вы все твины храните в локальных переменных, вот после цикла сборщик мусора их и киляет, попробуйте хранить их в переменных класса.

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

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Попробуйте воспользоватся альтернативным твинером: https://www.greensock.com/

Старый 05.02.2011, 13:22
vave вне форума Посмотреть профиль Отправить личное сообщение для vave Найти все сообщения от vave
  № 4  
Ответить с цитированием
vave

Регистрация: Nov 2003
Адрес: Spb
Сообщений: 33
Отправить сообщение для vave с помощью ICQ
мне критично именно стандартным... и потом я программер не очень...

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

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Использование TweenLite от указанного выше http://www.greensock.com/ проще и надежнее.

Кроме того, Вы запускаете ПЯТЬ твинов для одного объекта (на самом деле, это неправильное решение), а при использовании TweenLite нужно запустить всего один твин, который поменяет все пять параметров у таргетного объекта.

Вот ссылка с примером кода: http://www.greensock.com/tweenlite/

Старый 05.02.2011, 14:49
vave вне форума Посмотреть профиль Отправить личное сообщение для vave Найти все сообщения от vave
  № 6  
Ответить с цитированием
vave

Регистрация: Nov 2003
Адрес: Spb
Сообщений: 33
Отправить сообщение для vave с помощью ICQ
а как его установить в мой файл?

Старый 05.02.2011, 15:10
RandomUser вне форума Посмотреть профиль Отправить личное сообщение для RandomUser Найти все сообщения от RandomUser
  № 7  
Ответить с цитированием
RandomUser

Регистрация: Mar 2006
Адрес: Odessa
Сообщений: 157
Скопировать в корень проекта папку com из скаченного архива и

Код AS3:
// simple example
import com.greensock.TweenLite;
import com.greensock.easing.Back;
 
TweenLite.to(mc, 1.0, {x:100, y:150, scaleX: 2, scaleY: 2, alpha: 0.5, ease: Back.easeOut});
__________________
Не всех война убила - многих покалечила

Старый 05.02.2011, 16:09
vave вне форума Посмотреть профиль Отправить личное сообщение для vave Найти все сообщения от vave
  № 8  
Ответить с цитированием
vave

Регистрация: Nov 2003
Адрес: Spb
Сообщений: 33
Отправить сообщение для vave с помощью ICQ
cпс!

кому интересно решил проблему запихав код с твином в сам символ который аттачил(в библиотеке) и все заработало вне зависимости от количества инстансов!

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

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
эх, учили-учили, хотели как лучше, а получилось...

Старый 05.02.2011, 16:44
vave вне форума Посмотреть профиль Отправить личное сообщение для vave Найти все сообщения от vave
  № 10  
Ответить с цитированием
vave

Регистрация: Nov 2003
Адрес: Spb
Сообщений: 33
Отправить сообщение для vave с помощью ICQ
я обязательно разберусь с предложены вами твином, мне просто срочно надо нет времени

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

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

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


 


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


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