10 февраля 2011 г.

Шевелилка одной строкой

Очень часто нужно программно "пошевелить" объект без сторонних классов или движков. Ну например нафиг в махоньком баннере 20 кб кода который совершает колебательные движения над картинкой? В таких случаях лучше своё написать(или тут скопипастить)...

Математика для колебательных движений:

ВАРИАНТ 1 (последовательность типа 0,1,2,3,4,5,4,3,2,1,0,1,2,3,4,5,4,3...)
например когда нужно получить готовые координаты.
counter++;
...
var speed:Number = 1;
var range:Number = 100;


var result:Number = Math.abs((counter%(range/speed))-(range/speed)/2)*speed;
пример:
var counter:Number = 0 // счётчик (чтоб result начинался с 0: counter = range)

var range:Number = 50; //диапазон(выдаст result в пределах -50...50)
var speed:Number = 1; //скорость*
var result:Number; //результат

protected function thisEnterFrameHandler(event:Event):void{
counter++
result = Math.abs((counter%(range/speed))-(range/speed)/2)*speed;
//[Фигня которую нужно пошевелить].rotationX = result;
//или [...].y= 100 + result;
}

ВАРИАНТ 2 (последовательность типа -1,-1,-1,-1,-1,1,1,1,1,1,-1,-1,-1,-1,-1,...)
например когда нужно получить приращение координат.
counter++;
...
var range:Number = 5;
var speed:Number = 1;

var result:Number = frameCounter%(range*2)-range>=0?1*speed:-1*speed;
пример:
...
result = (frameCounter%(range*2)-range>=0?1:-1)*speed;
this.rotationX += result;
...

Комментариев нет:

Отправить комментарий