![]() |
Перемещение картинки с помощью изменения ее координат
Здравствуйте.Дан код.
Код AS3:
Я хочу, чтобы картинка плавно перемещалась согласно координатам напрмер из места x=10 y=10 в место x=20 y=20 , а затем в x=30 y=30.Или хотябы я успевал увидеть как она меняет своё положение :)Как будет выглядеть код такого перемещения картинки? |
Покажите, что вы уже пробовали сделать для достижения результата и на чем возникла загвоздка.
|
Для этого есть твины.
Вот хорошие: 1. Actuate 2. Eaze Tween 3. GTween |
Вложений: 1
Я прбовал так
var myStar1:MyStar; myStar1=new MyStar(); addChild(myStar1) myStar1.x=10 myStar1.y=10 //здесь нужна остановка выполнения кода на 2 сек, затем myStar1.x=20 myStar1.y=20 //здесь нужна остановка выполнения кода на 4 сек, затем myStar1.x=30 myStar1.y=30 Я хочу чтобы картинка перемещалась по полю и я успевал увидеть её, поэтому нужны остановки! |
Код AS1/AS2:
|
Спасибо,MikroAcse.
Нашел только Tween. Такой код работает верно! Код AS3:
|
Да, ты нашел Tween.
Но этот твиннер является одним из самых плохих. Чтобы воспользоваться Actuate/Eaze, нужно их скачать и положить в папку с проектом. Но если ты все таки дальше будешь использовать стандартный Tween, то прочитай в справке про события. |
Спасибо,MikroAcse.
Я скачал Actuate, GTween, Tweener переместил их папки в папку с проектом. Искал примеры, но ничего не нашел про то, как переместить картинку из (10, 50) в (20, 100) ,а затем в (40, 200). На этом форуме тоже ничего про это нет! Как используя Actuate переместить картинку из (10, 50) в (20, 100), а затем в (40, 200)? Как используя GTween переместить картинку из (10, 50) в (20, 100), а затем в (40, 200)? Как используя Tweener переместить картинку из (10, 50) в (20, 100), а затем в (40, 200)? Пожалуйста, с примерами. |
Цитата:
|
Спасибо, Aquahawk!
Я скачал файл greensock-v12-as3.zip вот отсюда http://www.greensock.com/tweenlite/, переместил папку из архива в папку с проектом и удалил папки других Tween'ов. Меня теперь интересует ответ на вопрос: Как, используя TweenLite, переместить картинку из (10, 50) в (20, 100), а затем в (40, 200)? Пожалуйста, с примерами. |
Я вот не понимаю, чем вам так нравится tweenlite/max. Код ужасен. Лицензия очень ограничивает.
Тем более actuate кросс-платформенный. |
Цитата:
Код AS3:
|
Я скачал файл greensock-v12-as3.zip вот отсюда http://www.greensock.com/tweenlite/.
Создал Проект Flash.Создал в папке проэкта ActionScript 3.0 файл. Переместил папку com из архива greensock-v12-as3.zip в папку с проектом и удалил папки других Tween'ов. Нарисовал фигуру, преобразовал ее в символ myStar ,создав класс MyStar. Почитал http://www.greensock.com/tweenlite/ Вот что получилось: Код AS3:
только из (100, 100) в (100, 200). Как используя TweenLite сделать это: Цитата:
Уважаемый, Котейка, уточню задачу: Как, используя TweenLite, переместить картинку сначала из (10, 20) в (20, 40), затем из (20, 40) в (40, 80), затем из (40, 80) в (80, 160), затем из (80, 160) в (160 320), и так далее (сколько угодно перемещений, можете сами продолжить ряд если хотите :) ). Заранее спасибо! |
UserSuperPupsik, ну я ж вам привел код который именно это и делает :)
повторюсь, добавив ваш код добавления на сцену Код AS3:
|
Спасибо ,Вам, Котейка!
Я сам бы не догадался что вместо {x:20,y:100},{x:40,y:200}, можно добавить много {x:20,y:100},{x:40,y:200},{x:35,y:100},{x:40,y:150}. Код хороший! Ну а если я захочу перемещать картинку в цикле с изменением координат x=x+45 y=y+15, то я не смогу использовать эту функцию? |
UserSuperPupsik, не совсем понял. Покажите на примере.
Если вы имеете ввиду массив координат в цикле задавать. То сможете, почему нет, ну например Код AS3:
|
Ну хорошо,Котейка, здесь есть 2 проблемы:
1) А если я хочу подождать 4 секунды, а затем снова вызвать ani(myStar1, [{x:20,y:100},{x:40,y:200}, {x:160, y:320}], 1); Затем подождать 5 сек, и затем вызвать ani(myStar1, [{x:160,y:320},{x:40,y:200}, {x:160, y:320}], 1); 2) Я бы хотел что-то типа Код AS3:
|
Я вроде понял что вы хотите сделать. Чтобы при добавлении новых координат старые не сбивались, а новые добавлялись в конец списка, так? Для этого просто надо сделать массив координат глобальным. Ну а функцию ani модифицируем чуть чуть :)
Код AS3:
|
Котейка, Вы поняли, что я хотел!
Вот что получилось: Код AS3:
Было бы неплохо, если Вы, Котейка, добавили к функции ani() все параметры, в том числе и duration, ease, scale, rotation, tint, alpha(Кстати,что такое alpha), как на примере ниже. TweenLite.to(myStar1, 1, {x:65, y:117, scaleX:1, scaleY:1, rotation:0, alpha:1, tint:null, ease:Elastic.easeInOut}); Было бы совсем хорошо...:) |
Ну это уж вы сами параметры нужные добавьте, там дело то нехитрое :) alpha это непрозрачность от 0 до 1
|
Уважаемый, Котейка, применяю функцию ani() для другого символа (даже другого класса), а перемещается всё тот же символ.В чём проблема?
|
Ну так глобальный массив один поэтому так и выходит) Сейчас погодите маленько переделаю, чтоб более универсально было.
|
Цитата:
|
Вот теперь можно будет запускать одновременно несколько разных объектов.
Код AS3:
Код AS3:
|
Если с помощью библиотеки FPTween.swc, то можно так:
Код AS3:
|
Цитата:
Вышло куча ошибок.Что я сделал неправильно? Добавлено через 10 минут Цитата:
Но вот проблема: 2 объекта двигаются одновременно, а мне нужно, чтобы сначала объект myStar1 перемещался, затем после окончания перемещения объекта myStar1, начал перемещаться объект myStar2! Что я делаю неверно, может быть я не понимаю логику ActionScript, но я же не создавал 2 потока (worker), а написал все по очереди-значит по очереди и должны выполнятся действия, а не одновременно?В чем проблема как двигать объекты по очереди?Если можно, приведите пример. |
Цитата:
http://flashpress.ru/blog/wp-content...dSwcFlash2.png И покажите какие ошибки выдает. |
Всё теперь ошибок нет!.Я изменил код.
Код AS3:
А потом заставить двигаться simbol2 этого же класса (Simbol1) по координатам (40, 50)-->(240, 250)-->(90, 60)-->(110, 60)? |
Что бы двигался ваш символ, необходимо в свойствах этого символа указать базовый класс (BaseClass) ru.flashpress.tween.display.FPTweenSprite, ну и код будет выглядеть так:
Код AS3:
Добавлено через 2 минуты Что бы по окончании проигрывания одного символа, начиналось проигрывание другого символа - сейчас надо слушать событие об окончании проигрывания первого, и после стартовать второй. В данный момент дописываю библиотеку FPTween так, что бы можно было совмещать проигрывание анимаций нескольких объектов |
Вложений: 2
Сделал как вы сказали: вставил ru.flashpress.tween.display.FPTweenSprite в базовый класс.
Выполнил этот код: Код AS3:
|
Что я сделал неправильно?
Добавлено через 14 минут Котейка нужна ваша помощь: Цитата:
|
в этой стройке
Код AS3:
Код AS3:
|
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? |
можете приложить исходник fla ?
Добавлено через 1 минуту а не заметил с первого раза, вот здесь тоже Код AS3:
Я же писал что везде надо указывать instance name вашего клипа, а вы везде указали ссылку на класс |
Котейка, Ваш код творит чудеса!
Код AS3:
|
Вложений: 1
Полный код для воспроизведения двух анимаций по очереди:
Код AS3:
|
maincode, Спасибо!
Вот что получилось: Код AS3:
|
Вложений: 1
maincode, у меня adobe flash cs5!
Ваш файл не могу открыть. А Ваш код выдает ошибки! Код AS3:
|
Вложений: 1
пересохранил в CS5
|
Вложений: 1
maincode, я создал Проект Flash.Поместил в папку проекта файл test.fla, а также FPTween.swc.
Открыл test.fla, нажал ctrl+enter и вуаля получил ошибки: |
| Часовой пояс GMT +4, время: 14:50. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.