PDA

Просмотр полной версии : Запись мыши в массив


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
да работает, только..
прикинь чему равно 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 ], аха?