Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Из точки А в точку Б (http://www.flasher.ru/forum/showthread.php?t=74313)

Vlad1917 17.01.2006 05:04

Из точки А в точку Б
 
Заранее извиняюсь, если вопрос слишком нубский или уже обсуждался (я всего 3-й день этот флэш мучаю).
Имеется мувиклип, к примеру, из 20 кадров, где экземпляр двигается из одной точки в другую, с ключевыми кадрами в 1-м и 20-м кадре.
Можно ли как-нить во время исполнения этого (или внешнего) клипа изменить _x и _y в ключевых кадрах, чтоб оно двигалось уже в другое место?
Извращения типа
gotoAndStop (20);
this.S1._x = чему нить;
gotoAndPlay (20);
не помогают (я и не надеялся, но проверить был обязан :), экземпляр встаёт и вобще больше не двигается...

Или может я вобще всё усложняю, и есть какая-нить элементарная функция?
Вобщем, как проще всего реализовать перемещение экземпляра из точки А в точку Б, которые заранее не известны?

Вобще есть идея, но это настолько через задницу, что не охота заморачиваться пока, может ещё что посоветуете...

И, по возможности, чтоб это было в методах экземпляра. Сказал ему - топай отсюда сюда, и он пошел (я имею ввиду, чтоб не приходилось извне его постоянно двигать, ибо планируется не один такой экземпляр, а кучка). Но это уже пожелание...

Mnilionic 17.01.2006 05:16

делай всё в одном кадре используя, к примеру, onClipEvent(Enter Frame){}
Задаешь начальные координаты объекта X и Y,
потом в выше озвученной функции делаешь приращение к этим координатам с учётом скорости и траектории. Объкт пополз, как достигнет нужной точки Б. останавливаешь функцию.

Vlad1917 17.01.2006 05:34

Т. е. проще никак? :/

silin 17.01.2006 11:58

почему же никак: как посмотреть что проще,
глянь на mx.transitions.Tween (класс, позволяющий программно управлять перемещением, как впрчем и любыми другими свойствами мувика)
для примера:
Код:

import mx.transitions.*;
var targetX=300,targetY=300;
new Tween(mc,'_x',null,mc._x,targetX,20);
new Tween(mc,'_y',null,mc._y,targetY,20);

this.onMouseUp=function(){
        targetY=100;
        new Tween(mc,'_x',null,mc._x,targetX,20);
        new Tween(mc,'_y',null,mc._y,targetY,20);
}

если мышкой не кликать мувик mc просто доедет до 300,300
если кликнуть, то поедет уже в 300,100..

CREDO 17.01.2006 12:27

какие параметры у new Tween в скобках.

new Tween(target,...?)

silin 17.01.2006 12:31

/* constructor for Tween class

obj: reference - the object which the Tween targets
prop: string - name of the property (in obj) that will be affected
begin: number - the starting value of prop
duration: number - the length of time of the motion; set to infinity if negative or omitted
useSeconds: boolean - a flag specifying whether to use seconds instead of frames
*/
function Tween (obj, prop, func, begin, finish, duration, useSeconds)

Nirth 17.01.2006 14:31

Кредо хелп/FAQ читать влом правда?

Vlad1917 17.01.2006 19:58

Вложений: 1
Спасибо большое всем за советы, но для меня это пока сложно, щас буду разбираться.
Кстати, сделал совсем по другому, на мой взгляд - гораздо проще. Посмотрите, мне кажется идея достаточно забавная. Там всего 15 строчек, и, что интересно, работает. :)
Впрочем, может это лишь очередной велосипед, и ничего нового я не придумал.

Antares 17.01.2006 21:39

А мне кажется, что ничего проще Tween и его подклассов нет.
Потому что 96% работы сделали за тебя.

motor4ik 27.01.2006 13:03

а вот такой вопрос у меня возник....а есть какое-нибудь событие или как-нибудь можно узнать когда завершено движение, ну т.е. объект переместился в заданную точку?


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

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