ActionScript 3.0 :: Using Keyboard Controls To Move A Sprite?
Oct 27, 2008
I have a problem with keyboard input, in one of my gameclasses i want to react to user input, i get no errors but myfunction like keyDownHandler wont be called.I have found solutions with child variables and child.focusbut its not working for me?
I need to make a menu (sort of like a game main menu) that the user can either use the mouse to click on the buttons, or they can use the up and down keys on the keyboard to navigate the menu and use enter to select the button. Like, a game menu.
After Apple released Safari 5, it seems that even after you focus on the Flash (by clicking on it), Safari still recognizes those commands for itself. One annoying problem is than when I am editing in text field, Safari will go to the previous page upon pressing backspace. Is it possible to overcome the problem by any AS3 code?
I have a 4 frame game that moves from frame to frame depending on what the player does.On the first frame, I have an intro and a button to get to the main portion of the game, frame 2. The frame loads up and the game code runs, but until the player clicks again on the stage, the keyboard controls do not function.The code for the button is straight forward. I have a button object and the following code in the frame:
playGame.addEventListener(MouseEvent.MOUSE_UP, goodLuck); function goodLuck(evt:MouseEvent): void { gotoAndPlay(2); removeEventListener(MouseEvent.MOUSE_UP, goodLuck); }
I have a Sprite which is a child of a Flex object, and acts as the main "game window". So during game-play it should get keyboard input but at other times not. When I add a keyboard listener to it, it never fires.
Do I need to stop parent objects 'eating' the events somehow, or something similar? I get the same thing with mouse-wheel events, but mouse-click events are fine. Sprite doesn't seem to have the concept of focus unless I missed it.
More generally in this kind of approach, are there any suggestions on the best way? For instance some keys might still be needed to be intercepted before getting to the game-window, like ESC or F1 or something... the aim is the game-window isn't aware of other UI.
I an trying to capture keyboard and mouse events for square area on my UI, represented by Sprite. The mouse capture works, the keyboard capture doesn't work at all:
[code]...
I never see reportKeyDown executed, even though Sprite object has a focus.
I've basically got a large background which I want to have buttons that can pan around the image. The code I've got at the moment is:[code]If anyone knows another way of panning using buttons, it would be great.
I'm working on a Flex 3 app, implemented in Actionscript 3 and MXML, that includes an embedded video player, which is essentially a black box--I load it as a SWF from another site on demand, and I don't have access to its source code. It does, however, inherit from Sprite.The problem is that, when focus is on the Flash app, the video player is somehow receiving and processing keyboard events, even when the player itself isn't in focus.So when users are typing text elsewhere in the GUI, if they hit the space bar, the video pauses.
I've tried intercepting key events in the Sprite's parent, and setting tabEnabled = false, tabChildren = false, and buttonMode = false on the Sprite, but nothing seems to work. It's as if the Sprite is getting keystrokes through an alternate Event path.how I can prevent the player from receiving keyboard events or input events entirely? It's fine with me if no input events reach the player, since I've implemented my own,separate video controls.
i have a question to ask about asynchronous key controls This was what i did
[Code]...
and i checked with [URL]...?newspage=6249 and it looked more or less the same, so why is it that when i move my character and when i hold down a key, it just keeps on listerning to that keypress event listener, instead of just executing the other event. So say, i tap left and after which i tap right, it will work just fine, but if i hold left and tap right, the event listerner will still be listening to the left key. So, i was wondering could anyone point me in a direction as to how should i make my code stop listening to an event as soon as another event has been dispatched?
[URL] tutorial here was something I ran across while trying to learn how to move an MC using the keyboard. However, I'm looking to do a motion that is a bit more complicated than that - and I'm somewhat stumped. (Yup, Im new to actionscripting) I'd like to be able to move the MC 100 pixels (and that part I've figured out), but I need the motion to be smooth - with inertia. I searched and searched, and this is a link I found that looked useful in demonstrating the effect:[URL] Click the 4th example - 'Inertia, Single plane of movement'
Now, instead of having the _xmouse determine the position, I want to hit the 'forward/backward' keys on the keyboard, and make it hop smoothly forward or backward a 100 pixels. Im just confused where to add what, and I am continuing to work on it. This is being programmed in Flash MX 2004.
How can I move a ball to the left once the left arrow is pressed, so the ball moves to the left side and should automatically return to the right once it reaches the end of the stage... And the same thing should be applied to the right arrow.
I try to create a MovieClip that i can move with the arrow keys. That worked with:
ActionScript Code: var keyListener = {}; keyListener.onKeyDown = function() {
[code]....
Now I tried to limit the area where I can move this MovieClip "cursor_mc". I found a lot of solutions but those where always solutions where the limitation zone was a rectangular. I was looking for a solution where I can create a "cursorlimit_mc" MovieClip and as long as the "cursor_mc" clip is inside of this clip I can move it with my keys. If it isnt possible to limit that, maybe I can create more than just 4 points and draw the limitation szone?
I can move my man with aswd and shoot moving balls with space, but there is an issue with it. When I'm moving my man by holding down a key, and then press space to shoot off a ball, then movement halts and you have to up and down the key again, to make the man continue to move.Here is the code:
Code: stage.addEventListener(KeyboardEvent.KEY_DOWN, moveMan); function moveMan(e:KeyboardEvent):void
[code]....
As you might be able to see, I tried using another variable to store the old key code in, and switch it after the actions of a space press has occured.e how to make the sprite move after another key has been pressed, without having to up and down the key again?
I have two scenes in flash - when you go to scene 2 there is a eventListener attached to the stage to move a movieclip. When I test the movie the only way the keyboard listener seems to work is if I click on the stage first, then the object will move. Is there a solution to this. The code I am using is:
I'm trying to get the characters in this Flash game to move diagonally - it works, but the following occurs: The character is walking twice as fast as it does when going left, right, up, downThe walking animation doesn't play PHP Code:
I wanted a sprite to move round on the screen when a play button was pushed. I have a left and a right button which store strings "left" or "right" into the next positions of an empty array called history.
When i push the play button i want i want the sprite to move either left or right according to what commands are in the array. My code just seems to play one single command and then stops when i hit play again it just repeats the same command.
Is there any way to make it play through all commands in the array one after another?
i am trying to do a simple blackboard on mouse down, start drawing on mouse move, if drawing, draw line on mouse up, stop drawing i set the listeners on a simple clip with a rectangle. if i dont fill the rectangle, the mouse events wont fall into the rectangle, but if i fill the rectangle, it will paint behind the rectangle, so anyway i wont see any succesfull results. what i did was create another sprite and paint within it; something like
i have the controls for car number 1 that would be the arrow keys if [code]but how can i make controls for car 2.i wann use wasd but i cant figure out how the key.a doesnt work.
Everything going well so far except for camera control. I want the character to always be in the center of the screen. only when the side boundaries are reached, the character should leave the center of the screen to be able to reach the sides of the screen.Somewhat like this: http:[url]....I've tried 2 ways but both without succes:
- move the character using the keyboard, but somehow keep it in the center of the screen (have no idea on this one)
- move the entire area except the character to simulate movement.
This seems kind of ineffeciant but it worked out better that the previous attempt, the only problem is that the character doesn't return to the center of the screen when he leaves the boundary.The .fla's are available for download here http:[url]....
the actionscript is all in the first frame.try not to be too hard on the crappy visuals Ignore the comments too, theyre only there to help me understand what I did.The boundaries seem to be a bit sketchy aswell when moving to the sides, but that's not a big problem right now.
For those of you still with me, I am tasked with making some scrollable content in Flash. Load in a TextFile using LoadURL(), then display it. To get the text, we've written our own class TextFieldExtended, which is basically just there to give the textfile location to the constructor and then have the class do the various steps of getting it and loading it for you.So I needed to get a Scrollbar, which I got hereThe thing is, it works with Sprites.After trying to get it to accept TextFieldExtended, I bumped into a block, since the scrollbar relied heavily on a Sprite property that TextFieldExtended didn't have or could have.
So I tried adding the TextFieldExtended instance to a Sprite instance using addchild.A problem occurs here that I do not know how to handle. It seems that a Rectangle is drawn and the Text is drawn on that. I say this because the scrollbar moves the Rectangle up and down a bit, but the text doesn't scroll, just the Rectangle it is positioned in and the text then moves along with it.My question: can this be fixed, or is does this implementation of scrollbars need a lot of adaptations before this is possible?
I have 2 scenes. In both scenes, I have a movie clip that moves via keyboard control. If the goto next scene is triggered by the movie clip in the first scene the keyboard control works in the second. However, if I use a button to move to the next scene then there isn't any control over the movieclip in that scene. I've traced the keyCode in the second scene and it is picked up but the switch statement doesn't run. I'm migrating to Actionscript 3.0 and updating something I created in 2.0. I would like to do it without writing a class.
When using a notebook and I have remarked that I cannot enter numerical character with shift + a letter to enter number.Is this a bug in flash ? How to circumvent this ?
How do? Edit the field with numeric keypad, not a full keyboard my code: <s:TextInput text="{TransactionObject.cartao}" id="item" restrict="0123456789" /> app for Android and playbook
I get an error while extracting the asdoc of my flash professional project:
Code:
C:...Main.as(33): Spalte: 73 Fehler: Access of possibly undefined property D through a reference with static type Class. private var moveRightArray:Array = new Array(Keyboard.RIGHT, Keyboard.D); ^ C:...Main.as(33): Spalte: 73 Fehler: Access of possibly undefined property D through a reference with static type Class. private var moveRightArray:Array = new Array(Keyboard.RIGHT, Keyboard.D);
I created a class, extended the sprite class, and now in the constructor I am trying to set the Sprite's width and height properties which are inherited from the DisplayObject. However, after I set this.width and this.height, and print the values, I get 0 for both.
What the heck is going on? When I view the livedocs I see that DisplayObject has width and height listed as public properties. I have been able to instantiate a Sprite directly, and set the width and height after it's been instantiated, so I don't get it.
package { import flash.display.*; public class ScrollBar extends Sprite {[code].....