Форум 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=122511)

newGron 12.03.2009 16:41

Отобразить перемещение мыши в клипе
 
Здравствуйте. Имеется учебный пример в котором я пытаюсь разобраться. В нем после нажатия на кнопку Enter идет запись координат мыши в массив mouse, затем после 5 секунд(time) объект arrow должен повторить перемщение мыши. Но он неповторяет, а просто переходит к ключевому кадру playRecord. Подскажите что нетак написано. Ссылка клипа практика array.fla

Wigga 12.03.2009 17:30

stop(); допиши в 20-ом кадре и все будет хорошо.

dimarik 12.03.2009 17:44

Код AS1/AS2:

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(010);
arrow.lineTo(00);
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;
        };
}


newGron 12.03.2009 17:53

Цитата:

Сообщение от Wigga (Сообщение 804979)
stop(); допиши в 20-ом кадре и все будет хорошо.

Да действительно это решило проболему невоспроизведения. Но как сделать чтобы клип при нажатии потом воспроизводился опять.

Добавлено через 3 минуты
Спасибо dimarik за вариант.

Wigga 12.03.2009 17:57

поставь из первого клипа обработчик кнопки в тот же 20 и на будующее почисти массив координат мышки, чтобы новое записывалось вместо сторого, а не после.

newGron 12.03.2009 18:05

Цитата:

Сообщение от Wigga (Сообщение 804988)
поставь из первого клипа обработчик кнопки в тот же 20 и на будующее почисти массив координат мышки, чтобы новое записывалось вместо сторого, а не после.

Спасибо Wigga. Все воспроизводится. Только непонимаю почему в изначальном виде неработает. Дело в том что я взял этот пример с обучающего интерактивного курса и все сделал как там указано, а все равно неработало:(

Добавлено через 1 минуту
Кстати а как очтстить массив?

dimarik 12.03.2009 20:24

arr = new Array();
или
arr.splice(0);


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

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