PDA

Просмотр полной версии : как саттачить объект чтоб он начал движение по траектории


ford05
28.11.2007, 10:12
как саттачить объект чтоб он начал движение по траектории.
Например есть шар - он начал движение по траектории. Мне надо, чтоб через несколько секунд добавился к движению по траектории ещё объект, потом ещё. Желательно в классе. Плиз HELP!!!

etc
28.11.2007, 10:50
Что конкретно у вас не получается? И давайте без «желательно».

ford05
28.11.2007, 20:51
Вот что я писал в PlayArea.as.
Не получается добавить ещё один шар, к движению по нарисованной траектории.

class PlayArea extends MovieClip {
private var numDepth:Number = 10;
function PlayArea() {
}
function GoCurrentBall() {
//this.numDepth++;
this.gotoAndPlay(1);
// как указать, что когда переход на восьмой кадр создать следующий шар?Или лучше использовать временной промежуток?
if(this.gotoAndPlay(8)){
this.GoNextBall();}
}
function GoNextBall() {
this.numDepth++;
_root.mc_PlayArea.duplicateMovieCli("ball"+this.numDepth,this.numDepth);
//устанавливаю шар в начало траектории
_root.mc_PlayArea["ball"+this.numDepth]._x = 533;
_root.mc_PlayArea["ball"+this.numDepth]._y = 270;
_root.mc_PlayArea.gotoAndPlay(2);
}

}

iNils
28.11.2007, 21:07
ford05, для оформления своего кода, надо использовать теги .

ford05
29.11.2007, 19:31
Вот пример. Как сделать?

CorC
01.12.2007, 15:57
как указать, что когда переход на восьмой кадр создать следующий шар?

if(this._currentframe == 8){
GoNextBall();
}

и еще посмотрите баг про
duplicateMovieCli("ball"

ford05
02.12.2007, 13:24
CorC, this._currentframe == 8, не работает, зато когда пишу this._currentframe == 1 шар помещается в заданную мной координату, но не продолжает своё движение.
Первый шар едет по траектории, потому что я его поставил в начало и в конец(на последнем кадре), но второй шар ,когда я его аттачу встаёт в начало траектори, а в конце его нет - может поэтому он не продолжает движение? Если это так, то как саттачить шар сразу в последний кадр?

CorC
03.12.2007, 10:50
Потому что у вас код выполняется на 1 кадре, а не на 8. Надо что то типа onEnterFrame ставить. А то что он помещается и не продолж движение, дак значит плохо закодировано.
З.Ы.: исходник не глядел, пока некогда :)

ford05
08.12.2007, 17:14
Нашёл решение с помощью setInterval, и нашёл ошибку с duplicate - наверно нудно как-то через attachMovie, а то flash ругается:TypeMismatch.

class PlayArea extends MovieClip {
private var numDepth:Number = 0;
private var TimeInterval:Number = 360;
private var intervals:Number;
function PlayArea() {
}
function Interval() {
intervals = setInterval(GoNextBall, TimeInterval);
}
function GoCurrentBall() {
_root.mc_PlayArea.ball0.gotoAndStop(1);
this.Interval();
}
function GoNextBall() {
this.numDepth++;
//Проблема с duplicate
duplicateMovieClip("ball0", "ball"+String(this.numDepth), this.numDepth);
updateAfterEvent();
}
}

ford05
09.12.2007, 16:47
Всё сделал, кому нужен готовый исходник пишите.

iNils
09.12.2007, 16:49
Всё сделал, кому нужен готовый исходник пишите.И выложить сразу трудно?

ford05
12.12.2007, 21:54
Вот только сделал так, чтобы весь мувик с траекторией дублировался.