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

Therion 06.01.2006 20:19

Запись мыши в массив
 
Что то я туплю наверное
Надо чтобы флеш записывал координаты мыши,а потом их передавал другому обьекту ,ранше вроде плучалось ,а тепер я чего то торможу :p

вот собственно скрипт который не работает :(

X= []
Y= []
_root.onEnterFrame= function() {
if(X.length<100){
i=0
X.push(_xmouse)
Y.push(_ymouse)
}else{
i++
for(i in X){
L._x=X[i]}

for(i in Y){
L._y=Y[i]}
}}

Antares 06.01.2006 20:31

Тэгом [ code ] пользуемся, да.

Код:

var X:Array = [];
var Y:Array = [];

function rearrage ( a:Array ) : Void
{
        var last:Number = a.length - 2;
        for(var i:Number = 1; i < last; i++)
        {
                a[i-1] = a[i];
        }
       
        a[last] = null;
}

var mouseLnr:Object = {};
mouseLnr.onMouseMove = function()
{
        if( X.length < 100 )
        {
                X.push( _root._xmouse );
                Y.push( _roott._ymouse );
        } else
        {
                rearrange(X);
                rearrange(Y);
               
                X[X.length-1] = _root._xmouse;
                Y[Y.length-1] = _root._ymouse;
        }
}

Mouse.addListener(mouseLnr);


Antares 06.01.2006 20:32

Типа, храним последних 100 координат в руте

silin 06.01.2006 20:36

если правильно понял (что трудно), то можно так:
Код:

X = [];
Y = [];
_root.onEnterFrame = function() {
        X.push(_xmouse);
        Y.push(_ymouse);
        if (X.length>100) {
                X.shift();
                Y.shift();               
        }
        L._x=X[0];
        L._y=Y[0];
};


Therion 06.01.2006 20:55

нет...
все что мне надо, это чтобы флеш записывал движения мыши, а потом иго воспроизводил.

silin 06.01.2006 21:13

Совершенно очевидно, что все вышесказанное пpоливает свет на теоpию пpедикативных ощyщений сyбьекта, абсолютно нефyнкциональных в yсловиях форума..
зы: а что, ты думаешь, тебе предложили ?

Therion 06.01.2006 21:22

да
Вот только тепер надо сделать чтобы из массива по очереди
вытягивались параметры мыши и передовались обьекту "L"
именно это я и хотел сделать в следующим скриптом:

...else{
i++
for(i in X){
L._x=X[i]}

for(i in Y){
L._y=Y[i]}
}
именно эта часть скорее всего и не работает

silin 06.01.2006 21:37

Вложений: 1
да работает, только..
прикинь чему равно L._x после выполнения цикла for(i in X){L._x=X[i]} ..
короче см. аттач

slesha 08.01.2006 14:54

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

Код:

var ar:Array = new Array();
Mouse.addListener(ar);
ar.onMouseMove = function() {
        this.splice(0,2,_xmouse, _ymouse);
        trace(ar);
        mc1._x = ar[0];
            mc1._y = ar[1];
        }

Это если ты, например создал мувик и назвал его mc1.
Это сценарий для кадра сцены. В мувике ничего писать не надо. trace(ar) - просто показывает эти координаты.
К массиву применен splice() - это если тебе не нужны предыдущие координаты. Если нужны, то чуть его подправь.

Antares 08.01.2006 15:46

Слеша, пользуйся тэгом [ code ], аха?


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

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