ActionScript 3 :: Calculating Degrees For MovieClip Rotation
Sep 6, 2011
I've a movieclip representing an arrow (with registration point in its middle). When I click a button, the arrow must point to a certain movieclip on stage. I use this code to execute the Tween:
TweenLite.to(arrow_clip,1,{rotation:degrees});
But I can't understand how to calculate the degrees. I tried the following with no luck:
var degrees =Math.atan2((clip.y-arrow_clip.y),(clip.x-arrow_clip.x))*(180/Math.PI);
I found the following is working but I can't completely understand why:
var degrees = -(Math.atan2(arrow_clip.x-clip.x, arrow_clip.y-clip.y))*(180/Math.PI);
Program A has a cannon that aims to line up with where-ever the mouse is pointing, in 360 degrees, and fires when the mouse is is clicked. Program B has an eye instead of a cannon that should in theory do similar functions when the capslock key is toggled, but instead only has a 90 degree range of motion from the Right of the eye toward the bottom (quadrant 4 only). Where did the ther 270 degrees of rotation disappear to?
I am rotating an object by incrementing in 90 degrees,however after 180degrees it rotates to -90...then it can't quite make it's mind up if it should go to -180, or 0, which should be the same thing? (except it messes up my if statements down the line)(by that I mean, sometimes it will go back to 0, and sometimes it will switch to -180??)Where is 270, and for that case, 360?
I'm new to Flash and I'm having trouble rotating my mc 360 degrees using the 3D Rotation Tool. I can rotate it 180 degrees, right side coming forward, but when I attempt to rotate it back to its original position, it doesn't continue the rotation in the same direction (right side coming forward). So instead of apearing to rotate completely, it looks like it rotates half way, stops, and rotates back (left side comes forwards). Probably an easy solution, but as I said, I'm new.
I have set up a motion tween using the flash tween class to rotate an image 180 degrees. However, if I should want to work wit hthe image from that point (say click the button again and have it rotate another 180 degrees back to its original position) I can't. It will simply run the tween again because my function specifies to go from 0 to 180. How I can use the tween class to rotate this image 180 degrees on each button click?
Code is below: import fl.transitions.*; import fl.transitions.easing.*; import fl.transitions.Tween; rotation1_btn.addEventListener(MouseEvent.CLICK, rotateThePicture); function rotateThePicture(event:MouseEvent) { //IMG11_mc.rotation += 180; var PicRotation:Tween= new Tween(IMG11_mc, "rotation", Strong.easeInOut, 0, 180, 5, true); };
I need to know what the visible height of a display object will be after I change it's rotationX value. I have an application that allows users to lay out a floor in 3D space. I want the size of the floor to automatically stretch after a 3D rotation so that it always covers a certain area. EDIT: I guess what I am really trying to do is convert degrees to pixels.
On a 2D plane say 100 x 100 pixels, a -10 degree change on rotationX means that the plane has a gap at the top where it is no longer visible. I want to know how many pixels this gap will be so that I can stretch the plane. In Flex, the value for the display objects height property remains the same both before and after applying the rotation, which may in fact be a bug.
EDIT 2: There must be a general math formula to work this out rather than something Flash/Flex specific. When viewing an object in 3D space, if the object rotates backwards (top of object somersaults away from the viewer), what would the new visible height be based on degrees of rotation? This could be in pixels, metres, cubits or whatever.
I have a papervision camera of which turns using keyboard input, I have a radar of which I would like to orientate to direction when the camera turns.I have it all working apart from mapping my (camera) DisplayObject3D.rotationY to RadarInterface.rotation correctly.The camera (or any 3d object) works with values I'm finding hard:Clockwise: 0 to 89, 89 to 0, -0 to -89, -89 to -0 doing a complete 360.So if I were to turn 180 degrees I'd go from 0 to 90 and back down to 0 again.
I am developing a game for mobile in AIR (as3). I have created some bots for this game that initially just wander around. But when a bonus enters the stage, they have to move to the bonus.The detection of a new bonus and moving of the bots works fine, but there is something wrong with the manipulation when a new bonus enters the stage.Basically, this is how it works (or I try to make it work):My bot moves along with his rotation as a parameter. (works fine)
private function moveToNextLocation():void { var angle:Number = _rotation * 0.0174532925; // 1 degree = 0.0174532925 radians var speedX:Number = Math.sin(angle) * _speed;
I've created some code that rotates an arrow up or down when the user clicks on it, depending on whether the timeline is on frame 1 or 5. The problem I am encountering is that rather than rotating visually, it just flips to the correct degree (in this case, 0 or 180).
Code: function turndown():Void{ for(i=0; i<16; i++){ this.upDownMC._rotation += 11.25; }} function turnup():Void{ [Code] ......
How do I rotate a movieclip 360 degrees over a period of time? Can I use "new tween" ? I am trying to rotate the movieclip while it is moving from position y to y+50 (this is done using new tween)
I'm trying to jump to a position in the mc by clicking on a progressbar that is 388 pixels in width the total frames of the mc I am trying to jump to with the progressbar is 3348 my function is:
can someone explain the logic of circular motion (them radians and degrees). I've found the code for it and modified it a bit to make it do what I want. But I haven't a clue as to how it works.. This is a slightly modified code taken from the Kirupa Tutorial.
What i need to know is whether or not i can modify this to calculate the distance of the mouse from the clip, even if it is contained in another clip that moves around the stage.
explain the logic of circular motion (them radians and degrees). I've found the code for it and modified it a bit to make it do what I want.But I haven't a clue as to how it works..This is a slightly modified code taken from the Kirupa Tutorial.
The above code will change the position of the movieClip at every 22.5 degrees (thereby making sixteen distinct stops) and will trace a circle of radius 100 px. concept behind the math equations?
So I've found numerous tutorials on rotating to face the mouse, and none of the rotation equations work properly for me. I made my own that worked but then it just over complicated things such as bullet direction. Code: var radians:Number =Math.atan2(mouseY-ME.y,mouseX-ME.x) var degrees:Number = (radians/Math.PI)*180; ME.rotation=degrees; That is the only code that changes the rotation of my movieclip. and it always seems to be about 45 degrees behind my mouse?
Basically, what I'm trying to accomplish is moving a movieclip towards the direction it's facing.I've been scoping around the net for different ideas on how to do it, but I've only found AS2 tuts.
What I've done already is making the movieclip rotate around it's own center when the user presses either the left or the right arrow-key.What I'm now trying to accomplish is to make the movieclip move forward to the direction it is currently facing when the user presses up and vice versa for pressing down.
I am making a 'simple' template builder in flash which allows the user to add/remove text boxes and images to the stage. I can rotate any of the movieClips fine but it rotates from the top left and i want it to rotate from midpoint. Is there a way to set the midpoint/rotation point using actionscript?
Basically, what I'm trying to accomplish is moving a movieclip towards the direction it's facing.I've been scoping around the net for different ideas on how to do it, but I've only found AS2 tuts.What I've done already is making the movieclip rotate around it's own center when the user presses either the left or the right arrow-key.What I'm now trying to accomplish is to make the movieclip move forward to the direction it is currently facing when the user presses up and vice versa for pressing down.
I need to put rotation handles to a movieclip. The same way it happens when you rotate an element in editing mode but in the final movie. How to do that?
I'm having a problem with a little movement script I wrote for a MC I have. I believe it either has to do with variable scoping, or with a coordinate system problem. (If I change the xPos and yPos in the onClipEvent (load) to 0,0...then the MC starts in the middle of the field (MC) I'm trying to move it inside of.) Basically...the ActionScript you see below is a part of the "Player" MC...who is supposed to move around a "field" MC I have.
(I was assuming setting xPos and yPos to 0 would have the Player MC starting at the very top left of the entire screen...which instead it starts in the middle of the "field" MC.) Also - When I press the different arrow keys...the Player MC jumps around to different locations...but once at the new location the movement (in a single direction) works okay. I've attached the .swf.
I'm trying to kind of create an effect of 3d with a movie clip that rotates round its centre on all three axis. Is there any way of using just xscale, yscale, and _rotation properties of an image to give this effect (once you know rotation round z axis, y axis and x axis). I know it can be done I just can't get my head round the flipping over. Its ok when its at only one angle like imagine a photo spinning like some spinning doors but as soon as the angle changes is where I'm having problems. This is as far as I've got but its clearly wrong, it shrinks to zero size. Use right up and down arrow keys [URL].
Is it possible that I can have a fixed 3d rotation center for a movieclip.So if I have two movieclips spaced apart and I have rotated them, they rotate in their own axis rather than based on a single axis.
But unfortunately, the ship does not follow mouse rotation. The ship only rotates with respect to the mouse when you move the ship, not when you move the mouse.
I want to make a movieclip moves smoothly and when it changes the direction, it can turn smoothly but not a sudden turn, I try out the code below. and the truning is odd: this.rotation = (Math.atan2(targetY-this.y, targetX-this.x )/Math.PI)*180;
Essentially what I'm trying to do is nearly the same as this: http:[url].......However I'd like to ease/tween the movieclip position and rotation to the mouse position.The main issue I see is trying to get the current movieclip rotation and the target rotation,then tween it cockwise or counterclockwise from current to target.The way a movieclips rotation uses positive and negative numbers throws it off.If you just want to lock the mc rotation to the mouse rotation its fine, but once you try to tween it you run into difficulties. So the end effect would be like if you were to draw imaginary clockwise circles around the object, it should just keep rotating clockwise towards the mouse. Then if you started going counter clockwise it should just keep easing counter clockwise to the mouse.
Here i ve create 2 movieClips outer,inner (outer.inner) .Am rotating outer movieClip to 90 degree. and am giving -ve rotation to inner movieclip.Then am loading images.jpg to inner movieclip ans setting width,height. Here height is not changed.ie .,value not taken to assign 4.If i trace am getting Wid:4 Hei:42.5