Actionscript 3.0 :: Capture Key Presses And Relate Them To The Buttons
Apr 27, 2010
I want to perform keyboard equivalents instead of using my moouse to navigate through my project. I want to use left to go back a frame, right to next frame and up for home and down for exit. I've put here my code for the button instance (NEXT15). How can i capture key presses and relate them to these buttons.
I'm using AS3 in timeline. I have a three page movieclip (dynamic_mc). Each page is labeled p1..p3. On p1 I have an input text box named userName and button named next_1. On p2 I have a dynamic text box named greetings_1, an input text field named schoolName and two buttons (back1 and next2).On p3 I have another dynamic text box named greetings_2 and two buttons (back_2 and next_3).
On p1 user enters name, which is captured on p2. Once a click next button on p1, I get this error: TypeError: Error #1009: Cannot access a property or method of a null object reference. at FlashCS4_Curriculum_fla::lesson9_pg6_dynamic_122/frame10() at flash.display::MovieClip/gotoAndStop() at FlashCS4_Curriculum_fla::lesson9_pg6_dynamic_122/goP2() Why do I get an error when using buttons? Is there a better way to capture input text?
Here is the code by page. //page 1 = p1stop(); var hisName:String; next_1.addEventListener(MouseEvent.CLICK, goP2);function goP2(evt:MouseEvent): void{ hisName =userName.text; gotoAndStop("p2"); } // page 2 =p2 greetings_1.text= "Welcome :" +hisName;var school:String; //next buttonnext_2.addEventListener(MouseEvent.CLICK, goP3); [Code] .....
I have been using Flex Builder for a while now, infact since i started coding in AS3 Projects.One of the fundamental issues i have from experience of trying flex, is i dont see how MXML tags and AS3 is related.Can someone try to explain to me from an Actionscript perspective?If i create a PixelBackgroud.as class which extends sprite and draws a random pattern, then how can flex use that class? Does it automatically become <PixelBackground /> ?
How do I relate a variable to an object on the stage? I want to have a mouse over and a mouse out effect on a button yet when I use the code below I get the error:
ReferenceError: Error #1065: Variable button is not defined.
obviously the object on the stage is called 'button' but I didnt think I had to define objects as variables? I thought the below code was correct?[code]....
Like I understand that if you're assigning something within a class it would have to involve what's extended to this class.So if a class extends MovieClip, would you only Set properties that involve the MovieClip object?Adversely, with Getter functions you could be retrieving anything from XML to volume. So that can't have anything to do with what that class is extending towards right?Is that how the extends relationship works with Get (return) and Set (value) functions?
Im trying to get the X, Y of a Movie clip (well call it "target_mc").its inside of a parent MC (well call it...."parent_mc")but im trying to get the X,Y as they relate to the main stage(_root).so far the two methods ive used are
it seemed like the first method(the one in the code block) places it at the starting position of the MC i need the location of, but to further complicate it the parent_mc is a rotating clip(Ive got code to make it follow the mouse).how i can place this in a location that is changing whenever the mouse moves
I'm a bit rusty of my trig, so I'm not sure the best way to do this ... I need to position 2 movie clips on the stage that relate to each other they can't be nested ,the registation points are in the center, assume "clip B" is 50 px to the left of "Clip A" as pictured in the diagram to the left , when "clip A" is rotated, I need clip B to follow ( still 50px ) away but with new _x and _y relative to the rotation of "clip A" as in the diagram right.
I wondered if anyone can provide any information on how flash events relate to the DOM event model.My issue is this:body > div > object.The div has a mousedown event which calls 'preventDefault' on the event object.This shouldn't bear any relation to a click event within the objects swf however in IE9 it prevents the swfs mousedown event from firing..I'm struggling to understand how swf events fit in with DOM (presumably they continue to bubble up from the object element?) and why a click event on a div would affect a childs swf click.
Alright, so I've been struggling with this one since last night. When I create a new object (a new unit), and draw it to the screen (Flash does all the work there), the point at which it's first placed is considered its origin. That is, getX and getY will return the distance from that point... Why is that? Or how can I stop this?
I have recently been working on creating a game similar to the good ol' Asteroids game. So far, I have managed to create a very simple piece of code that rotates and moves my spacecraft according to the angle it is currently at. There are two problems with it, though:
1. I can't use two buttons at once--for example, to rotate and move forward. I'm sure there must be a better way to detect key presses. What's the best way to do it in AS3? 2. The way the whole thing works looks kind of jerky and stage. Another thing is, the spacecraft is constantly at an odd angle for no apparent reason.
Here it is ("sc" is my spacecraft movieclip): var SC_speed:Number; var SC_rotation:Number; var SC_radians:Number; SC_speed = SC_rotation = 0; function keys(event:KeyboardEvent):void{ [Code] .....
I have a really strange problem. I've made a custom class that listens for keyboard events such as key presses (I use it in order to navigate in an interface). When I test my file in Flash (using 'command'+'enter') all key presses work as they should. However, when I publish the file and starts the projector (or the swf for that matter) one key ('g') isn't doing what it should!
I set up some code to record key presses and specific chords. My problem is that I only want the keys to fire once when pressed. This is especially a problem when I require the user to hold CTRL + LEFT for an action.
The user experience is that I want users to hold down CTRL to enter a mode and then press the LEFT key as many times as needed. Currently, the CTRL trace and LEFT trace fire continuously. Is there a way to do a onKeyRelease?
Code: var keyListener:Object = new Object(); keyListener.onKeyDown = function() { if (Key.isDown(Key.CONTROL)) {
When I say two keyboard presses, I'm thinking about a situation where I would need to detect both. Not a shift this or alt that or control third. I'm talking about Down + A or 5 + T. For instance: Ryu has an overhead attack that is used when both Down + MP are pressed. If I were to create a game, with ActionScript 3.0, is there a way for me to detect that both buttons were pressed at the same time?
I need to disable the keyboard after each key is pressed, so if the user presses the UP key until the character has finihsed doing the move no other key can be pressed.
How would I go about determining the time in-between key presses in AS3? Basically, if a user is tapping the space bar to a beat, I want to be able to average the time in between 10 taps/key presses and get an output time in milliseconds.
My thought was to use an interval and after every press I would add that amount of time to an array. After 10 presses, I would take the average of all the numbers in the array and then output that number.
trying to count key presses in a 30 sec interval. if the number of keypresses is above say 20 in 30 secs they go to a new frame, otherwise they go back to the start and the count begins again. using as2 and flash cs4. very confused.... not sure if onEnterFrame is better than keyListener.
I simply need to use key presses to jump around on the timeline, ie. press "a" and the movie jumps to frame 355. Preferably a simple way of doing this with AS2. Please help... I will help you with Photoshop one day.
In a mini flash game, I have a few different level select buttons, and they all attach to one "levelChange()" function, and I'm just wondering if there is an attribute that stores which button was pressed or how to determine which was pressed if not.
Basically, I want to create a button (Instance Name: blueSquare). Each time the button is pressed, I want actionscript to "count" each button press (the maximum is 100 presses). When the number reaches 100 presses, I would like a new button to appear next to it ( Instance Name: redCirlce).
is there a command in flash that takes multiple key presses? For example if the user presses a then b the frame will advance. Note, I dont want them to have to be held at the same time.
I am creating a program where I am randomly flashing a series of words, and I would like to be able to record when someone has hit the "x", even very briefly, when looking at the word.I have inserted all of my code below, but I have difficulty with the section in bold. Everything is working except that in order for the "x" key press to be counted, it must be held down as the words actually change. Is there any way to have it record that the "x" is hit even if it very briefly? Whenever I try to use the key listener function, it does not work with my loop for displaying text.
stop(); var tempvariable = new Array();//array create variables stored in Flash to be saved for later display var itemarray = new Array(); //This is the array to hold the Words that need to be randomly shuffled
I am making a sort of like racing game maze thing but want it so that when the user hits for example the right arrow key the movie clip moves along it's x axis and doesn't stop until another key is hit or the movieclip hits another movieclip.I was thinking about making a function that some how loops the x distance and this function is being called when ever the keyboard key is hit.