wlad
01.01.2011, 16:36
Дамы и господа!
Попытка скромного новогоднего подарка.
Если Вы создаете какой-то спрайт, а в дальнейшем хотите иметь вращательный эффект, причем с регулируемым центром, то его центр вращения при
....drawRect(x0, y0, width, height);
будем выглядеть банально -
(width - x0, height - y0)
У нас есть грань куба var kub:Sprite = new Sprite();
var kub:Sprite = new Sprite();
kub.graphics.beginFill(0xFF666F);
kub.graphics.drawRect(-10, -10, 20, 20);
// центр вращения (width - x0, height - y0)
kub.x = 250;
kub.y = 250;
addChild(kub);
Итак, Вы вращение создаете Таймером
function onTick(event:TimerEvent):void
{ kub.x = event.target.currentCount*2; // это поступательное движение, разумеется,
kub.y = event.target.currentCount*2;
kub.rotation += 15; // а вот это уже вращение
} // function onTick(event:TimerEvent):void
(для полноты: Таймер до и после: )
var myT:Timer = new Timer(50, 1000); // создаете
myT.start();
myT.addEventListener(TimerEvent.TIMER, onTick); // прибавляете
Ответ на банальный вопрос: почему я такое считаю откровением? Дела в том, что в справочниках по языку ActionScript 3.0 при описании объектов Sprite, его свойства rotation абсолютно не сказано, как нужно задавать центр вращения.
Хотя, разумеется, вращение 3D куба куда более зрелищно...
С уважением
Влад
P.S. Разумеется, я совсем не против переноса темы в другой раздел. Например, "Новогодние поздралвения"
Попытка скромного новогоднего подарка.
Если Вы создаете какой-то спрайт, а в дальнейшем хотите иметь вращательный эффект, причем с регулируемым центром, то его центр вращения при
....drawRect(x0, y0, width, height);
будем выглядеть банально -
(width - x0, height - y0)
У нас есть грань куба var kub:Sprite = new Sprite();
var kub:Sprite = new Sprite();
kub.graphics.beginFill(0xFF666F);
kub.graphics.drawRect(-10, -10, 20, 20);
// центр вращения (width - x0, height - y0)
kub.x = 250;
kub.y = 250;
addChild(kub);
Итак, Вы вращение создаете Таймером
function onTick(event:TimerEvent):void
{ kub.x = event.target.currentCount*2; // это поступательное движение, разумеется,
kub.y = event.target.currentCount*2;
kub.rotation += 15; // а вот это уже вращение
} // function onTick(event:TimerEvent):void
(для полноты: Таймер до и после: )
var myT:Timer = new Timer(50, 1000); // создаете
myT.start();
myT.addEventListener(TimerEvent.TIMER, onTick); // прибавляете
Ответ на банальный вопрос: почему я такое считаю откровением? Дела в том, что в справочниках по языку ActionScript 3.0 при описании объектов Sprite, его свойства rotation абсолютно не сказано, как нужно задавать центр вращения.
Хотя, разумеется, вращение 3D куба куда более зрелищно...
С уважением
Влад
P.S. Разумеется, я совсем не против переноса темы в другой раздел. Например, "Новогодние поздралвения"