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

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

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

Регистрация: Feb 2008
Сообщений: 77
Question не ловится TweenEvent.MOTION_FINISH

Привет Всем!

Некий объект по клику зумится, по второму клику едет обратно, нужно сделать так, что-бы пока mapScaleIn() работает mapScaleOut() вызвать было нельзя.

В чем неправ?

Код AS3:
import fl.transitions.TweenEvent;
import fl.transitions.Tween;
import fl.transitions.easing.*;
 
var zoomAvailable:Boolean = true;
 
function unlockTween(event:TweenEvent):void
{
	zoomAvailable = true;
}
 
function mapScaleIn()
{
	if (!zoomAvailable)
	{
    	return;
	}
    zoomAvailable = false; 
	myTween_scaleX = new Tween(main_mc, "scaleX", Regular.easeIn, mainScaleX, mainScaleXin, 1, true);
	myTween_scaleY = new Tween(main_mc, "scaleY", Regular.easeIn, mainScaleY, mainScaleYin, 1, true);
    myTween_scaleX.addEventListener(TweenEvent.MOTION_FINISH, unlockTween);
}
 
function mapScaleOut()
{
	if (!zoomAvailable)
	{
   		return;
	}
    zoomAvailable = false; 
	myTween_scaleX2 = new Tween(main_mc, "scaleX", Regular.easeIn, mainScaleXin, mainScaleX, 1, true);
	myTween_scaleY2 = new Tween(main_mc, "scaleY", Regular.easeIn, mainScaleYin, mainScaleY, 1, true);
    myTween_scaleX2.addEventListener(TweenEvent.MOTION_FINISH, unlockTween);
}
 
 
function setPosition()
{
	if (selectedUnit == 1)
	{
		myTween1_desc = new Tween(nADesc_mc, "x", Regular.easeIn, nADescX , nADescXin, 1, true);
		myTween2_desc = new Tween(nADesc_mc, "alpha", Regular.easeIn, 0, 1, 1, true);
 
		myTween1 = new Tween(main_mc, "x", Regular.easeIn, mainX , NAcenterX, 1, true);
		myTween2 = new Tween(main_mc, "y", Regular.easeIn, mainY , NAcenterY, 1, true);				
 
	}	
	else
	{
		myTween3_desc = new Tween(europeDesc_mc, "x", Regular.easeIn, europeDescX , europeDescXin, 1, true);
		myTween4_desc = new Tween(europeDesc_mc, "alpha", Regular.easeIn, 0, 1, 1, true);
 
		myTween3 = new Tween(main_mc, "x", Regular.easeIn, mainX , EURcenterX, 1, true);
		myTween4 = new Tween(main_mc, "y", Regular.easeIn, mainY , EURcenterY, 1, true);
	}
	mapScaleIn();
	invisBtn_mc.visible = true;
}

Старый 19.12.2008, 21:09
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
да ловится событие MOTION_FINISH, дело видимо в чем-то еще..
приведенный обрывок абсолютно ни о чем не говорит
если есть косяк, то не поленись дать его пример, который можно взять и потестить, не домысливая логику и не достраивая недостающее..
к слову, о логике: у Твина есть свойство isPlaying, можно по-простому его смотреть, чтобы определить можно ли запускать другой твин..

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

Регистрация: Feb 2008
Сообщений: 77
Да я уже выкладывал исходник.... вот он (они)

http://www.flasher.ru/forum/showthread.php?t=119277
Вложения
Тип файла: rar main.part01.rar (195.3 Кб, 71 просмотров)
Тип файла: rar main.part02.rar (179.8 Кб, 65 просмотров)


Последний раз редактировалось ptirA; 19.12.2008 в 22:19.
Старый 19.12.2008, 23:15
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
исходники, да еще в таком количестве здесь не причем..
не думаю, что найдется много охотников поискать баги в чужом проекте
выдели трабл ("не ловится TweenEvent.MOTION_FINISH", например) в отдельный пример и приведи..

зы:нужно сделать так, что-бы пока mapScaleIn() работает mapScaleOut() вызвать было нельзя.
Код AS3:
import fl.transitions.Tween;
 
var mc:MovieClip= new MovieClip();
var tX:Tween;
var tY:Tween;
 
mc.graphics.beginFill(0x808080);
mc.graphics.drawRect(0, 0, 60, 40);
mc.addEventListener(MouseEvent.CLICK, eMcClick);
mc.x=50;
mc.y=50;
addChild(mc);
function scaleIn():void {
	tX=new Tween(mc,"scaleX",null,1,0.5,20);
	tY=new Tween(mc,"scaleY",null,1,0.5,20);
}
function scaleOut():void {
	tX=new Tween(mc,"scaleX",null,0.5,1,20);
	tY=new Tween(mc,"scaleY",null,0.5,1,20);
}
function eMcClick(e:MouseEvent):void {
	if (tX && tX.isPlaying) return;
 
	if (mc.scaleX<1) {
		scaleOut();
	} else {
		scaleIn();
	}
}

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

Регистрация: Feb 2008
Сообщений: 77
Большое спасибо.

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Немного не по теме, но все же...
TweenLight работает примерно в 200 (если не ошибаюсь) раз быстрее, гораздо удобнее и проще.

Старый 22.12.2008, 19:30
ptirA вне форума Посмотреть профиль Отправить личное сообщение для ptirA Найти все сообщения от ptirA
  № 7  
Ответить с цитированием
ptirA

Регистрация: Feb 2008
Сообщений: 77
Пока нахожусь на стадии, когда самому интересно разобраться. Когда вопросов не останется с удовольствием буду пользовать TweenLite, gTween и tweenMAX :-)


Последний раз редактировалось ptirA; 22.12.2008 в 19:33.
Создать новую тему Ответ Часовой пояс GMT +4, время: 13:36.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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