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

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

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

Регистрация: Aug 2013
Сообщений: 89
Что я сделал неправильно?

Добавлено через 14 минут
Котейка нужна ваша помощь:
Цитата:
Спасибо, Котейка, это то,что надо, и дополнительные параметры тоже помещаются в код!
Но вот проблема: 2 объекта двигаются одновременно, а мне нужно, чтобы сначала объект myStar1
перемещался, затем после окончания перемещения объекта myStar1, начал перемещаться объект myStar2! Что я делаю неверно, может быть я не понимаю логику ActionScript, но я же не создавал 2 потока (worker), а написал все по очереди-значит по очереди и должны выполнятся действия, а не одновременно?В чем проблема как двигать объекты по очереди?Если можно, приведите пример.

Старый 13.08.2013, 17:34
maincode вне форума Посмотреть профиль Отправить личное сообщение для maincode Посетить домашнюю страницу maincode Найти все сообщения от maincode
  № 32  
Ответить с цитированием
maincode

Регистрация: Feb 2010
Адрес: Город суеты
Сообщений: 191
в этой стройке
Код AS3:
Simbol1.addEventListener(MouseEvent.CLICK, clickHandler);
вы обращаетесь к классу, а надо к экземпляру, т.е. надо писать так
Код AS3:
simbol1.addEventListener(MouseEvent.CLICK, clickHandler);
__________________
FlashPress.ru | Blog

Старый 13.08.2013, 18:16
UserSuperPupsik вне форума Посмотреть профиль Отправить личное сообщение для UserSuperPupsik Найти все сообщения от UserSuperPupsik
  № 33  
Ответить с цитированием
UserSuperPupsik

Регистрация: Aug 2013
Сообщений: 89
maincode, я сделал это, вот получил такие ошибки:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at ru.flashpress.tween.timeline.turn::FPTimelineTurn/addTween()
at project3_fla::MainTimeline/frame1()
RangeError: Error #1125: Индекс 0 выходит за границы диапазона 0.
at ru.flashpress.tween.timeline.turn::FPTimelineTurn/playCurrent()
at ru.flashpress.tween.timeline.turn::FPTimelineTurn/playNow()
at ru.flashpress.tween.timeline.turn::FPTimelineTurn/start()
at project3_fla::MainTimeline/clickHandler()
Мне всего лишь нужно без событий на мышь, просто перемещения (10,10)-->(20,20)-->(30,30)-->(10,10).
Как это сделать с помощью FPTween?

Старый 13.08.2013, 18:19
maincode вне форума Посмотреть профиль Отправить личное сообщение для maincode Посетить домашнюю страницу maincode Найти все сообщения от maincode
  № 34  
Ответить с цитированием
maincode

Регистрация: Feb 2010
Адрес: Город суеты
Сообщений: 191
можете приложить исходник fla ?

Добавлено через 1 минуту
а не заметил с первого раза, вот здесь тоже
Код AS3:
var timelineTurn:FPTimelineTurn = new FPTimelineTurn(Simbol1, 'positionTo');
надо писать с маленькой буквы Simbol1.

Я же писал что везде надо указывать instance name вашего клипа, а вы везде указали ссылку на класс
__________________
FlashPress.ru | Blog

Старый 13.08.2013, 18:25
UserSuperPupsik вне форума Посмотреть профиль Отправить личное сообщение для UserSuperPupsik Найти все сообщения от UserSuperPupsik
  № 35  
Ответить с цитированием
UserSuperPupsik

Регистрация: Aug 2013
Сообщений: 89
Котейка, Ваш код творит чудеса!
Код AS3:
var myStar1:MyStar;//MyStar - название класса символа
myStar1=new MyStar();
myStar1.x=50;
myStar1.y=50;
addChild(myStar1);
 
 
 
 
 
var simbol1:Simbol1;//Simbol1 - название класса символа
simbol1=new Simbol1();
simbol1.x=50;
simbol1.y=50;
addChild(simbol1);
 
 
 
import com.greensock.*;
import com.greensock.easing.*;
 
 
 
 
 
/*for(var c:int=1;i<=19;i++){
 
 
			ani(myStar1, [{x:x1,y:y1},{x:x2,y:y2}], 1)				
 
							}*/
 //конец предыдущего положения и начало следущего положения - одни и те же y, x
var coordinates:Dictionary = new Dictionary();
 
 
function ani(object:DisplayObject, coords:Array, speedt:int = 1):void 
{
	if (coords) 
	{
		if (!coordinates[object])
		{
			coordinates[object] = coords;
		}
		else 
		{
			coordinates[object] = coordinates[object].concat(coords);
			return;
		}
	}
	if (coordinates[object])
	{
		var nextCoords:Object = coordinates[object].shift();
		nextCoords.onComplete = ani;
		nextCoords.onCompleteParams = [object, null, speedt];
		if (!coordinates[object].length) delete coordinates[object];
		TweenLite.to(object, speedt, nextCoords);
	}
}
ani(myStar1, [{scaleX:1,scaleY:1,rotation:0,x:50,y:50},{ease:Elastic.easeIn,rotation:0,scaleX:1,scaleY:1,x:30,y:60}], 1); // первое положение
 ani(myStar1, [{x:30,y:60},{rotation:0,x:110,y:175}],2); //второе положение
 ani(myStar1, [{x:110,y:175},{x:140,y:135}],100); // третье положение
 
ani(simbol1, [{ease:Elastic.easeIn,x:50,y:1},{ease:Elastic.easeIn,x:120,y:70}], 1); // первое положение
 ani(simbol1, [{ease:Elastic.easeIn,x:120,y:70},{ease:Elastic.easeIn,x:160,y:135}],2); //второе положение
 ani(simbol1,[{ease:Elastic.easeIn,x:160,y:135},{ease:Elastic.easeIn,x:240,y:235}],1); // третье положение
Но объекты двигаются одновременно, а мне нужно по очереди: сначала двигается объект1, затем двигается объект2.Почему они двигаются одновременно, я ведь не создавал 2 потока(2 workers), команды написаны по порядку вот и должны выполнятся по порядку! В чем проблема!?! Помогите пожалуйста!

Старый 13.08.2013, 18:35
maincode вне форума Посмотреть профиль Отправить личное сообщение для maincode Посетить домашнюю страницу maincode Найти все сообщения от maincode
  № 36  
Ответить с цитированием
maincode

Регистрация: Feb 2010
Адрес: Город суеты
Сообщений: 191
Полный код для воспроизведения двух анимаций по очереди:
Код AS3:
import ru.flashpress.tween.display.FPTweenSprite;
import ru.flashpress.tween.timeline.turn.FPTimelineTurn;
import fl.transitions.easing.Strong;
import ru.flashpress.tween.events.FPTimelineEvent;
 
var symbol1:Symbol1 = new Symbol1();
this.addChild(symbol1);
symbol1.positionTo = new Point(10, 50);
//
var timelineTurn1:FPTimelineTurn = new FPTimelineTurn(symbol1, 'positionTo');
timelineTurn1.addTween(new Point(20, 100), Strong.easeOut, 1);
timelineTurn1.addTween(new Point(40, 200), Strong.easeOut, 1);
timelineTurn1.start();
timelineTurn1.addEventListener(FPTimelineEvent.FINISH, timeline1FinishHandler);
 
 
var symbol2:Symbol2 = new Symbol2();
this.addChild(symbol2);
symbol2.positionTo = new Point(50, 10);
//
var timelineTurn2:FPTimelineTurn = new FPTimelineTurn(symbol2, 'positionTo');
timelineTurn2.addTween(new Point(100, 20), Strong.easeOut, 1);
timelineTurn2.addTween(new Point(200, 40), Strong.easeOut, 1);
 
function timeline1FinishHandler(event:FPTimelineEvent):void
{
	timelineTurn2.start();
}
Приложил пример во FLA
Вложения
Тип файла: zip test.fla.zip (5.7 Кб, 19 просмотров)
__________________
FlashPress.ru | Blog

Старый 13.08.2013, 18:39
UserSuperPupsik вне форума Посмотреть профиль Отправить личное сообщение для UserSuperPupsik Найти все сообщения от UserSuperPupsik
  № 37  
Ответить с цитированием
UserSuperPupsik

Регистрация: Aug 2013
Сообщений: 89
maincode, Спасибо!
Вот что получилось:
Код AS3:
import ru.flashpress.tween.display.FPTweenSprite;
import ru.flashpress.tween.timeline.turn.FPTimelineTurn;
import fl.transitions.easing.Strong;
 
var simbol1:Simbol1;//Simbol1 - название класса символа
simbol1=new Simbol1();
simbol1.x=20;
simbol1.y=30;
addChild(simbol1);
 
simbol1.addEventListener(MouseEvent.CLICK, clickHandler);
 
var timelineTurn:FPTimelineTurn = new FPTimelineTurn(simbol1, 'positionTo');
//timelineTurn.start();
timelineTurn.addTween(new Point(20, 100), Strong.easeOut, 1);
timelineTurn.addTween(new Point(60, 50), Strong.easeOut, 1);
timelineTurn.addTween(new Point(70, 200), Strong.easeOut, 1);
timelineTurn.addTween(new Point(88, 10), Strong.easeOut, 1);
function clickHandler(event:MouseEvent):void
{
	timelineTurn.start();
}

Старый 13.08.2013, 18:55
UserSuperPupsik вне форума Посмотреть профиль Отправить личное сообщение для UserSuperPupsik Найти все сообщения от UserSuperPupsik
  № 38  
Ответить с цитированием
UserSuperPupsik

Регистрация: Aug 2013
Сообщений: 89
maincode, у меня adobe flash cs5!
Ваш файл не могу открыть.
А Ваш код выдает ошибки!
Код AS3:
import ru.flashpress.tween.display.FPTweenSprite;
import ru.flashpress.tween.timeline.turn.FPTimelineTurn;
import fl.transitions.easing.Strong;
import ru.flashpress.tween.events.FPTimelineEvent;
 
var symbol1:Symbol1 = new Symbol1();
this.addChild(symbol1);
symbol1.positionTo = new Point(10, 50);
//
var timelineTurn1:FPTimelineTurn = new FPTimelineTurn(symbol1, 'positionTo');
timelineTurn1.addTween(new Point(20, 100), Strong.easeOut, 1);
timelineTurn1.addTween(new Point(40, 200), Strong.easeOut, 1);
timelineTurn1.start();
timelineTurn1.addEventListener(FPTimelineEvent.FINISH, timeline1FinishHandler);
 
 
var symbol2:Symbol2 = new Symbol2();
this.addChild(symbol2);
symbol2.positionTo = new Point(50, 10);
//
var timelineTurn2:FPTimelineTurn = new FPTimelineTurn(symbol2, 'positionTo');
timelineTurn2.addTween(new Point(100, 20), Strong.easeOut, 1);
timelineTurn2.addTween(new Point(200, 40), Strong.easeOut, 1);
 
function timeline1FinishHandler(event:FPTimelineEvent):void
{
	timelineTurn2.start();
}
Не смотря на то, что я создал символ simbol2 с классом Simbol2 c базовым классом ru.flashpress.tween.display.FPTweenSprite ошибки такие:
Миниатюры
Нажмите на изображение для увеличения
Название: 444.jpg
Просмотров: 31
Размер:	40.8 Кб
ID:	29897  

Старый 13.08.2013, 19:15
maincode вне форума Посмотреть профиль Отправить личное сообщение для maincode Посетить домашнюю страницу maincode Найти все сообщения от maincode
  № 39  
Ответить с цитированием
maincode

Регистрация: Feb 2010
Адрес: Город суеты
Сообщений: 191
пересохранил в CS5
Вложения
Тип файла: zip testCS5.fla.zip (7.5 Кб, 23 просмотров)
__________________
FlashPress.ru | Blog

Старый 13.08.2013, 19:45
UserSuperPupsik вне форума Посмотреть профиль Отправить личное сообщение для UserSuperPupsik Найти все сообщения от UserSuperPupsik
  № 40  
Ответить с цитированием
UserSuperPupsik

Регистрация: Aug 2013
Сообщений: 89
maincode, я создал Проект Flash.Поместил в папку проекта файл test.fla, а также FPTween.swc.
Открыл test.fla, нажал ctrl+enter и вуаля получил ошибки:
Миниатюры
Нажмите на изображение для увеличения
Название: 555.jpg
Просмотров: 26
Размер:	41.6 Кб
ID:	29900  

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

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

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


 


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


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