Просмотр полной версии : Отобразить перемещение мыши в клипе
Здравствуйте. Имеется учебный пример в котором я пытаюсь разобраться. В нем после нажатия на кнопку Enter идет запись координат мыши в массив mouse, затем после 5 секунд(time) объект arrow должен повторить перемщение мыши. Но он неповторяет, а просто переходит к ключевому кадру playRecord. Подскажите что нетак написано. Ссылка клипа практика array.fla (http://narod.ru/disk/6559118000/%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%BA%D0%B0%20array.fla.html)
stop(); допиши в 20-ом кадре и все будет хорошо.
var savedData:Array = new Array();
var arrow:MovieClip = this.createEmptyMovieClip('arrow', this.getNextHighestDepth());
arrow.beginFill(0xFF0000, 100);
arrow.moveTo(0, 0);
arrow.lineTo(10, 0);
arrow.lineTo(10, 10);
arrow.lineTo(0, 10);
arrow.lineTo(0, 0);
arrow.endFill();
setTimeout(this.stopRecord, 5e3, this);
var i:Number = 0;
this.onEnterFrame = function():Void {
this.savedData[i++] = {x:this._xmouse, y:this._ymouse};
}
function stopRecord(scope:Object):Void {
delete scope.onEnterFrame;
scope.playRecord();
}
function playRecord():Void {
i = 0;
this.onEnterFrame = function():Void {
this.arrow._x = Number(this.savedData[i].x);
this.arrow._y = Number(this.savedData[i].y);
if ( !this.savedData[++i] ) delete this.onEnterFrame;
};
}
stop(); допиши в 20-ом кадре и все будет хорошо.
Да действительно это решило проболему невоспроизведения. Но как сделать чтобы клип при нажатии потом воспроизводился опять.
Добавлено через 3 минуты
Спасибо dimarik за вариант.
поставь из первого клипа обработчик кнопки в тот же 20 и на будующее почисти массив координат мышки, чтобы новое записывалось вместо сторого, а не после.
поставь из первого клипа обработчик кнопки в тот же 20 и на будующее почисти массив координат мышки, чтобы новое записывалось вместо сторого, а не после.
Спасибо Wigga. Все воспроизводится. Только непонимаю почему в изначальном виде неработает. Дело в том что я взял этот пример с обучающего интерактивного курса и все сделал как там указано, а все равно неработало:(
Добавлено через 1 минуту
Кстати а как очтстить массив?
arr = new Array();
или
arr.splice(0);
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.