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

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

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

Регистрация: Aug 2013
Сообщений: 89
Уважаемый, Котейка, применяю функцию ani() для другого символа (даже другого класса), а перемещается всё тот же символ.В чём проблема?

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

Регистрация: Aug 2013
Сообщений: 56
Ну так глобальный массив один поэтому так и выходит) Сейчас погодите маленько переделаю, чтоб более универсально было.

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

Регистрация: Aug 2013
Сообщений: 89
Цитата:
Ну это уж вы сами параметры нужные добавьте, там дело то нехитрое alpha это непрозрачность от 0 до 1
Я без Вас не справлюсь, покажите, пожалуйста, пример.

Старый 13.08.2013, 02:58
Котейка вне форума Посмотреть профиль Отправить личное сообщение для Котейка Найти все сообщения от Котейка
  № 24  
Ответить с цитированием
Котейка
 
Аватар для Котейка

Регистрация: Aug 2013
Сообщений: 56
Вот теперь можно будет запускать одновременно несколько разных объектов.
Код AS3:
var coordinates:Dictionary = new Dictionary();
 
 
ani(myStar1, [{x:20,y:100},{x:40,y:200}, {x:160, y:320}], 1);
ani(myStar1, [{x:200,y:100},{x:400,y:200}, {x:16, y:320}], 1);
ani(myStar2, [{x:120,y:100},{x:25,y:200}, {x:16, y:320}], 1);
ani(myStar2, [{x:20,y:10},{x:40,y:20}, {x:160, y:32}], 1);
 
 
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);
	}
}
Для передачи доп параметров просто передавайте их вместе с x и y например
Код AS3:
{x:30, y:200, scaleX:0.5}
Разумеется только свои onComplete и onCompleteParams передать не получится их юзает ani() в своих нуждах.


Последний раз редактировалось Котейка; 13.08.2013 в 03:15.
Старый 13.08.2013, 12:16
maincode вне форума Посмотреть профиль Отправить личное сообщение для maincode Посетить домашнюю страницу maincode Найти все сообщения от maincode
  № 25  
Ответить с цитированием
maincode

Регистрация: Feb 2010
Адрес: Город суеты
Сообщений: 191
Если с помощью библиотеки FPTween.swc, то можно так:
Код AS3:
import ru.flashpress.tween.display.FPTweenSprite;
import ru.flashpress.tween.timeline.turn.FPTimelineTurn;
import fl.transitions.easing.Strong;
 
var clip:FPTweenSprite = new FPTweenSprite();
clip.graphics.beginFill(0xff0000, 1);
clip.graphics.drawRect(0, 0, 100, 100);
clip.addEventListener(MouseEvent.CLICK, clickHandler);
this.addChild(clip);
clip.x = 10;
clip.y = 50;
//
var timelineTurn:FPTimelineTurn = new FPTimelineTurn(clip, 'positionTo');
timelineTurn.addTween(new Point(20, 100), Strong.easeOut, 1);
timelineTurn.addTween(new Point(40, 200), Strong.easeOut, 1);
 
function clickHandler(event:MouseEvent):void
{
	timelineTurn.start();
}
А вообще конечно вам хорошо бы научиться делать такие вещи без использования движков, используя стандартный события и таймеры.
__________________
FlashPress.ru | Blog

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

Регистрация: Aug 2013
Сообщений: 89
Цитата:
Если с помощью библиотеки FPTween.swc, то можно так:
Скачал файл FPTween.swc, переместил в папку с проектом,нажал F9, вставил Ваш код, maincode.
Вышло куча ошибок.Что я сделал неправильно?

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

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

Регистрация: Feb 2010
Адрес: Город суеты
Сообщений: 191
Цитата:
Сообщение от UserSuperPupsik Посмотреть сообщение
Скачал файл FPTween.swc, переместил в папку с проектом,нажал F9, вставил Ваш код, maincode.
Вышло куча ошибок.Что я сделал неправильно?
Не достаточно переместить swc в каталог с проектом, надо его добавить в настройках публикации:


И покажите какие ошибки выдает.
__________________
FlashPress.ru | Blog

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

Регистрация: Aug 2013
Сообщений: 89
Всё теперь ошибок нет!.Я изменил код.
Код AS3:
import ru.flashpress.tween.display.FPTweenSprite;
import ru.flashpress.tween.timeline.turn.FPTimelineTurn;
import fl.transitions.easing.Strong;
 
var Simbol1:FPTweenSprite = new FPTweenSprite();
Simbol1.graphics.beginFill(0xaa2345, 1);
Simbol1.graphics.drawRect(0, 0, 100, 100);
Simbol1.addEventListener(MouseEvent.CLICK, clickHandler);
this.addChild(Simbol1);
Simbol1.x = 10;
Simbol1.y = 50;
 
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();
}
Но двигается не мой символ simbol1 класса Simbol1, а квадрат! Как заставить двигаться мой символ, без всяких событий, по координатам (10, 20)-->(140, 50)-->(40, 120)-->(110, 20)?
А потом заставить двигаться simbol2 этого же класса (Simbol1) по координатам (40, 50)-->(240, 250)-->(90, 60)-->(110, 60)?

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

Регистрация: Feb 2010
Адрес: Город суеты
Сообщений: 191
Что бы двигался ваш символ, необходимо в свойствах этого символа указать базовый класс (BaseClass) ru.flashpress.tween.display.FPTweenSprite, ну и код будет выглядеть так:
Код AS3:
import ru.flashpress.tween.display.FPTweenSprite;
import ru.flashpress.tween.timeline.turn.FPTimelineTurn;
import fl.transitions.easing.Strong;
 
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();
}
Где Simbol1 - это instance name символа который добавлен на stage

Добавлено через 2 минуты
Что бы по окончании проигрывания одного символа, начиналось проигрывание другого символа - сейчас надо слушать событие об окончании проигрывания первого, и после стартовать второй. В данный момент дописываю библиотеку FPTween так, что бы можно было совмещать проигрывание анимаций нескольких объектов
__________________
FlashPress.ru | Blog

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

Регистрация: Aug 2013
Сообщений: 89
Сделал как вы сказали: вставил ru.flashpress.tween.display.FPTweenSprite в базовый класс.
Выполнил этот код:
Код 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();
}
Но получил ошибку:
Миниатюры
Нажмите на изображение для увеличения
Название: 333.jpg
Просмотров: 32
Размер:	33.0 Кб
ID:	29894  
Изображения
 

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

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

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


 


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


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