PDA

Просмотр полной версии : Еще раз движение картинок


SveTTT
11.10.2006, 02:19
Приветствую всех!

Помогите пожалуйста исходником :rolleyes: (по образцу и подобию быстрее разберусь :umnik2: ) со следующим вопросом.

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

Спасибо!

El Scream
11.10.2006, 16:16
1. Кидаешь картинку на слой. Левая кнопка мыши - Convert to Symbol. Выбираешь MovieClip. Галочку на Export to ActionScript.В поле Identifer называешь мувик допустим myMovie. Удаляешь со слоя этот объект.
2. На первом слое в поле Action.

stop();
var t:MovieClip=attachMovie("myMovie",t,this.getNextHighestDepth());//експорт из библиотеки созданного тобою клипа
t._x=начальныая точка на оси абсцисс;
t._y=начальная точка на оси ординат;
t.onEnterFrame=function() {
with (t) {
_x+=величина смещения по абсциссе;
_y+=величина смещения по ординате;
if (условие){
var t:MovieClip=attachMovie("movic",t,this.getInstanceAtDepth());// нужна только в том случае если ты собираешься именно создавать новый мовик. Если же нужно просто изменение координат то эта строчка не нужна
_x=новые начальные координаты;
_y=новые начальные координаты;
}
}
}

Код не идеален. Но нет предела совершенству. Дерзай.

Хемуль
11.10.2006, 16:36
2 El Scream:
Интересно, это так задумывалось, что ваш новосозданный мувиклип будет иметь имя "undefined"?

SveTTT
11.10.2006, 21:15
2 El Scream - спасибо за наводку, только я не знаю как описать условие, чтобы этотже (myMovie) при достижении правой границы (напиример: от Х=0 до Х=300) начинал движение заново.

Спасибо

Хемуль
11.10.2006, 23:47
2 SveTTT:
Условие зависит от вашей задачи. Достижение границы - понятие расплывчатое. Непонятно, нужно ли вам, чтобы мувиклип возвращался в начальную позицию, как только лишь своим карем коснётся границы сцены, или же он должен уйти за границу сцены целиком и потом вернуться...

SveTTT
12.10.2006, 00:18
2 SveTTT:
Условие зависит от вашей задачи. Достижение границы - понятие расплывчатое. Непонятно, нужно ли вам, чтобы мувиклип возвращался в начальную позицию, как только лишь своим карем коснётся границы сцены, или же он должен уйти за границу сцены целиком и потом вернуться...

... он должен уйти за границу сцены целиком и потом появиться сначала.
Принцип (например): появился слева, двигается вправо, исчез справа, появился слева, двигается вправо, исчез справа, и так в цикл.:umnik2:

D12
12.10.2006, 01:59
так ?

this.mc.onEnterFrame = function() {
if (Key.isDown(Key.LEFT)) {
this._x -= 3;
}
if(this._x <= -this._width){
this._x = Stage.width;
}
};


создай муви-клип и назови его "mc"

введи код в кадр где этот мувик находится , запусти тест нажми клавишу лево и смотри то или не то .

Хемуль
12.10.2006, 02:25
Продолжая пример товарища D12...
Нижеприведённый код нужно вставить просто в кадр таймлайна, например, _root'а.

var speed:Number = 3;
var clip:MovieClip = createRectangleMovieClip("clip", _root, _root.getNextHighestDepth(), 100, 100, 40, 40, 0x006600, 100);

this.onEnterFrame = function() {
if (Key.isDown(Key.LEFT)) { clip._x -= speed; }
if (Key.isDown(Key.RIGHT)) { clip._x += speed; }
if (Key.isDown(Key.UP)) { clip._y -= speed; }
if (Key.isDown(Key.DOWN)) { clip._y += speed; }
if (clip._x < -clip._width) { clip._x = Stage.width - 1; }
if (clip._x > Stage.width) { clip._x = 1 - clip._width; }
if (clip._y < -clip._height) { clip._y = Stage.height - 1; }
if (clip._y > Stage.height) { clip._y = 1 - clip._height; }
}

function createRectangleMovieClip(newName:String, parentClip:MovieClip, parentClipDepth:Number, newX:Number, newY:Number, newWidth:Number, newHeight:Number, newColor:Number, newAlpha:Number):MovieClip
{
var newClip:MovieClip = parentClip.createEmptyMovieClip(newName, parentClipDepth);
newClip.beginFill(newColor);
newClip.moveTo(0, 0);
newClip.lineTo(newWidth, 0);
newClip.lineTo(newWidth, newHeight);
newClip.lineTo(0, newHeight);
newClip.lineTo(0, 0);
newClip.endFill();
newClip._x = newX;
newClip._y = newY;
newClip._alpha = newAlpha;
return newClip;
}

Управлять мувиклипом с помощью клавиш управления курсором. Обрабатываются условия перехода мувиклипа через все границы сцены.
Исходник прикрепляю...

SveTTT
12.10.2006, 09:33
2 Хемуль & 2 D12 - Спасибо!
Буду разбираться.