Просмотр полной версии : Еще раз движение картинок
Приветствую всех!
Помогите пожалуйста исходником :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=новые начальные координаты;
}
}
}
Код не идеален. Но нет предела совершенству. Дерзай.
2 El Scream:
Интересно, это так задумывалось, что ваш новосозданный мувиклип будет иметь имя "undefined"?
2 El Scream - спасибо за наводку, только я не знаю как описать условие, чтобы этотже (myMovie) при достижении правой границы (напиример: от Х=0 до Х=300) начинал движение заново.
Спасибо
2 SveTTT:
Условие зависит от вашей задачи. Достижение границы - понятие расплывчатое. Непонятно, нужно ли вам, чтобы мувиклип возвращался в начальную позицию, как только лишь своим карем коснётся границы сцены, или же он должен уйти за границу сцены целиком и потом вернуться...
2 SveTTT:
Условие зависит от вашей задачи. Достижение границы - понятие расплывчатое. Непонятно, нужно ли вам, чтобы мувиклип возвращался в начальную позицию, как только лишь своим карем коснётся границы сцены, или же он должен уйти за границу сцены целиком и потом вернуться...
... он должен уйти за границу сцены целиком и потом появиться сначала.
Принцип (например): появился слева, двигается вправо, исчез справа, появился слева, двигается вправо, исчез справа, и так в цикл.:umnik2:
так ?
this.mc.onEnterFrame = function() {
if (Key.isDown(Key.LEFT)) {
this._x -= 3;
}
if(this._x <= -this._width){
this._x = Stage.width;
}
};
создай муви-клип и назови его "mc"
введи код в кадр где этот мувик находится , запусти тест нажми клавишу лево и смотри то или не то .
Продолжая пример товарища 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;
}
Управлять мувиклипом с помощью клавиш управления курсором. Обрабатываются условия перехода мувиклипа через все границы сцены.
Исходник прикрепляю...
2 Хемуль & 2 D12 - Спасибо!
Буду разбираться.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.