Просмотр полной версии : Запаздывание объекта
Клип1 должен повторять координаты Клипа2 только с запаздыванием на 1-2 секунды.
Хелп? :bye:
ну примерно так:
var lim = 62; // 2 сек х 31 кадр в секунду, или сколько у вас там
var stack = new Array();
function recordPoz(){
stack.push([clip2._x, clip2._y]);
}
function reflectPoz(){
if(stack.length < lim )return; // мало записей - 2 сек не прошло, выход
var poz = stack.shift();
trace(poz);
clip1._x = poz[0];
clip1._y = poz[1];
}
onEnterFrame = function(){
recordPoz();
reflectPoz();
}
clip2.startDrag(true);
†‡Paladin‡†
18.08.2007, 23:18
Соглашусь с вышесказаным =)
Molecula
18.08.2007, 23:24
Отцовский Отжиг.
BARTLEBY
19.08.2007, 00:18
супер! +
Так, а теперь давайте каждый скажет почему он тут отпостился.
Лично я отпостился потому то меня очень удивил вопрос автора.
А я похвалил красивое решение. Которое имеет также корни универсальности, в смысле может быть еще для чего-то использовано. А может быть, оно уже было для чего-то использовано :) А что с вопросом, Nirth? Не представляешь, где это применить? Разведчик показывает дорогу юнитам. Группа девушек переправляется через речку по бревну. Ты управляешь убегающим зайцем, а собака его догоняет :)
Думаю всех удивило существование методов push и shift
Это просто цепная реакция пошла =)
artcraft
19.08.2007, 01:51
Думаю всех удивило существование методов push и shiftа что с ними не так?
"Думаю всех удивило существование методов push и shift"
хахахаха
а что такого в этом решении? оно как раз самое банальное - первое, что приходит в голову.
отцовским решением было бы хранить в массиве всего одну запись в единицу времени - ведь это реально то, что необходимо и достаточно
о как я только что лажанулся
CCCPirate
19.08.2007, 02:47
Very nice!
†‡Paladin‡†
19.08.2007, 03:05
Меня удивил адский способ Kikasso со счетчиком кадров. Всем индусам на зависть! =))
artcraft
19.08.2007, 03:17
Меня удивил адский способ Kikasso со счетчиком кадров. Всем индусам на зависть! =))
ну давай, предложи "более элегантное решение" :~)
Вообще можно проще:
onEnterFrame = function(){
setTimeout(function(obj){
clip2._x = obj.x;
clip2._y = obj.y;
}, 1000, {x:clip1._x, y:clip1._y});
}
clip1.startDrag(true);
или вот так, без динамики:
onEnterFrame = function(){
setTimeout(setXY, 1000, {x:clip1._x, y:clip1._y});
}
setXY function(obj){
clip2._x = obj.x;
clip2._y = obj.y;
}
clip1.startDrag(true);
Стеки здесь - лишние.
Раз на то пошло =)) Стек действительно лишний, а вот очередь -- как раз подойдет))
var queue:Array = new Array(33);
//
onEnterFrame = function () {
queue.push({x:mc1._x, y:mc1._y});
var shifted:Object = queue.shift();
mc2._x = shifted.x;
mc2._y = shifted.y;
};
//
mc1.startDrag(true);:yahoo:
Раз на то пошло =)) Стек действительно лишний, а вот очередь -- как раз подойдет))
var queue:Array = new Array(33);
//
onEnterFrame = function () {
queue.push({x:mc1._x, y:mc1._y});
var shifted:Object = queue.shift();
mc2._x = shifted.x;
mc2._y = shifted.y;
};
//
mc1.startDrag(true);:yahoo:
Строк одинаково... как у меня. А букав больше :p
Хавать пустые объекты методом shift будет не логично. И такое в ас3 не прокатит.
Елси предварительно массив объектами заполнить, то тогда ты победишь))
Не понял, если честно, что все наехали.
В чем принципиальное преимущество массива объектов перед массивом массивов? А вот от стопки таймайтов принцип "стека"(хорошо, "очереди") отличается тем что можно "притормозить" движение первого клипа, продолжая записывать движение второго (или мышки или еще чего), а с таймаутами это сделать затруднительно.
А что у вас miramax букв меньше - так это немудрено. Вы название функции не написали.
А по поводу пустых объектов тоже неправильно. Так хотя бы:
var shifted:Object = queue.shift();
if(shifted){
mc2._x = shifted.x;
mc2._y = shifted.y;
}
Я дал в двух вариантах, с динамикой и без (без "названия функции").
Мы просто нашли самое простое решение.
Тьфу блин.... да что в самом деле, любой это без напряга напишет...
Дивлюсь я на вас, программеров - чёто ругаются, хвосты распускают...
Да всё это просто ПРИКОЛЬНАЯ штука, вот все и выразили восхищение. Все, кто не воспринял это восхищение как самцовый вызов. Вроде и не подростки уже, можно и без линейки обойтись. Буквы считают... Тьфу. Есть лучшее решение - выложи, а "пальцы"-то здесь при чем?
--------------------
[на правах флейма]
Это просто цепная реакция пошла =)
Nirth, что я тебе говорил?:)
Наверное, с минуту втыкал в код Kikasso, пытаясь найти логику. Нашел. Видимо, из-за этой задержки в мозгу и появилось столько постов позже.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.