deadmerc
28.04.2013, 19:45
Пытаюсь сделать как в этой игре "взлом"
http://youtu.be/ (http://youtu.be/_HONVDDat6w?t=19s)
Однако так и не сообразил как проверить на "точность" поворота картинок и при повороте картинка дёргается как обкуренная (делает рывок и нормально поворачивается.
Пишу на Flex. Буду благодарен за помощь.
Использовал 2 "способа" поворота, но без успехов(
<mx:Script>
<![CDATA[
[Bindable]
public var angle:int=0;
private var moving:Boolean = false;
private var startAngle:Number;
private function rotateImage():void
{
if(moving)
{
var newAngle:Number = Math.atan2(this.mouseY - layout_mc.y, this.mouseX - layout_mc.x)*180/Math.PI;
var diff:Number = newAngle - startAngle;
layout_mc.rotation += diff;
startAngle = newAngle;
}
else
{
startAngle = Math.atan2(this.mouseY - layout_mc.y, this.mouseX - layout_mc.x)*180/Math.PI;
moving = true;
}
}
private function rotateImage0():void {
rotate0.end();
angle += 45;
rotate0.play();
}
private function rotateImage1():void {
rotate1.end();
angle += 45;
rotate1.play();
}
<mx:Rotate id="rotate" angleFrom="{angle-45}" angleTo="{angle}" target="{pic}"/>
<mx:Rotate id="rotate0" angleFrom="{angle-45}" angleTo="{angle}" target="{pic0}"/>
<mx:Rotate id="rotate1" angleFrom="{angle-45}" angleTo="{angle}" target="{pic1}"/>
<mx:Canvas x="306" y="99" width="460" height="201" id="play">
<mx:Image y="41" width="80" height="88" x="112.5" id="pic" click="rotateImage()" enabled="true" rotation="0" autoLoad="true" scaleContent="false">
<mx:source>file:///C|/Documents and Settings/Admin/Рабочий стол/1items.jpg</mx:source>
</mx:Image>
<mx:Image y="41" width="80" height="88" x="189.5" id="pic0" click="rotateImage0()" enabled="true" rotation="0" autoLoad="true" scaleContent="false">
<mx:source>file:///C|/Documents and Settings/Admin/Рабочий стол/2items.jpg</mx:source>
</mx:Image>
<mx:Image y="41" width="80" height="88" x="267.5" id="pic1" click="rotateImage1()" enabled="true" rotation="0" autoLoad="true" scaleContent="false">
<mx:source>file:///C|/Documents and Settings/Admin/Рабочий стол/1items.jpg</mx:source>
</mx:Image>
</mx:Canvas>
http://youtu.be/ (http://youtu.be/_HONVDDat6w?t=19s)
Однако так и не сообразил как проверить на "точность" поворота картинок и при повороте картинка дёргается как обкуренная (делает рывок и нормально поворачивается.
Пишу на Flex. Буду благодарен за помощь.
Использовал 2 "способа" поворота, но без успехов(
<mx:Script>
<![CDATA[
[Bindable]
public var angle:int=0;
private var moving:Boolean = false;
private var startAngle:Number;
private function rotateImage():void
{
if(moving)
{
var newAngle:Number = Math.atan2(this.mouseY - layout_mc.y, this.mouseX - layout_mc.x)*180/Math.PI;
var diff:Number = newAngle - startAngle;
layout_mc.rotation += diff;
startAngle = newAngle;
}
else
{
startAngle = Math.atan2(this.mouseY - layout_mc.y, this.mouseX - layout_mc.x)*180/Math.PI;
moving = true;
}
}
private function rotateImage0():void {
rotate0.end();
angle += 45;
rotate0.play();
}
private function rotateImage1():void {
rotate1.end();
angle += 45;
rotate1.play();
}
<mx:Rotate id="rotate" angleFrom="{angle-45}" angleTo="{angle}" target="{pic}"/>
<mx:Rotate id="rotate0" angleFrom="{angle-45}" angleTo="{angle}" target="{pic0}"/>
<mx:Rotate id="rotate1" angleFrom="{angle-45}" angleTo="{angle}" target="{pic1}"/>
<mx:Canvas x="306" y="99" width="460" height="201" id="play">
<mx:Image y="41" width="80" height="88" x="112.5" id="pic" click="rotateImage()" enabled="true" rotation="0" autoLoad="true" scaleContent="false">
<mx:source>file:///C|/Documents and Settings/Admin/Рабочий стол/1items.jpg</mx:source>
</mx:Image>
<mx:Image y="41" width="80" height="88" x="189.5" id="pic0" click="rotateImage0()" enabled="true" rotation="0" autoLoad="true" scaleContent="false">
<mx:source>file:///C|/Documents and Settings/Admin/Рабочий стол/2items.jpg</mx:source>
</mx:Image>
<mx:Image y="41" width="80" height="88" x="267.5" id="pic1" click="rotateImage1()" enabled="true" rotation="0" autoLoad="true" scaleContent="false">
<mx:source>file:///C|/Documents and Settings/Admin/Рабочий стол/1items.jpg</mx:source>
</mx:Image>
</mx:Canvas>