ActionScript 3.0 :: Something Better Than Stage.focus = Stage?
Feb 14, 2010
I ran into an interesting problem while constructing an interactive applet today. It requires reaction to keyboard presses/releases, so I set up the appropriate listener to the stage. It also involves transitioning between different screens and I handle this by adding/removing instances of the sub-screens to the DisplayList of the stage. Now, here comes the interesting part: from my Control class in reaction to a SWITCH_SCREENS Event:
I am new to AS3 and trying to figure out how to set a focus to a textfield on the stage. I found out that if I use stage.focus = tf; then the tf get the focus and it does, when I type letters they go directly to this textfield.Problems are, I don't have a blinking cursor in the textfield. I added event listener to catch up when the user press the ENTER key but it catches the ENTER key ONLY after I click the textfield with the mouse and having a blinking cursor in that textfield.
I built this incredibly brilliant scrolling thumbnail image viewer for a client in flash actionscript 3. (Basically it just scrolls up or down depending on the mouse position). It works so so, (I can never get the percentages right so that it shows the top most image) but, that's beside the point. What is REALLY irking me is when I have the browser window open with my .swf loaded and I click on another app on my desktop, the stupid scrolling thumbnail area in the browser window starts to freak out.
"Where is my mouseY?" I assume it is thinking.
Is there a stage.Unfocus event I can tell my scrolling thumbnail area to STFU with?
I'd even consider writing some javascript to call a flash function, if that's a preferred technique.
function checkMousePos(e:Event):void { if(mouseX < 145){ try{
My app has a datagrid as well as many other UIComponents (buttons, menus, etc). I have a general stage KeyDown handler as well as a specific one for the datagrid. The behavior I'm trying to implement is turning out to be trickier than I thought: basically, when using the keyboard arrows I would like the datagrid to always hear about such commands, even if it's not in focus.
Possible approaches I thought of:have the DG be in focus at all times: seems stupid / tricky - basically would need to remember to give focus back to DG after any interaction with the rest of the UI, which obviously doesn't scale.try to set the DG in focus from stage KeyDown handler: seems like the timing doesn't work since the DG gets focus too late to "hear" the event.from the stage keydown handler, check if the DG is not in focus, and if so pass it the event. This seems to make sense in theory, but I'm not sure how to do this properly since my stage keyDown handler uses capture, and thus seems to catch the same event over and over.
I have a class listening for key presses attached to the stage, works fine until...a menu item that when clicked removes the menu from the display list. This seems to cause the stage to lose focus & I need to click the mouse on the SWF to get the keys to register again.
Is there any reliable way to give the stage focus when you first open it in a browser window WITHOUT first clicking on the stage? By reliable, I mean something that works across different browsers and on both PCs and Macs.I've seen numerous threads on this subject, and I've read the Adobe tech note, and it seems there is no reliable way.How in the world can Adobe ask people to use Flash and not provide a reliable way to give the stage focus on startup.
I want to have it so that when text is entered into an input text field, the cursor advances automatically to the next text field. The text fields are nameed box1, box2 and so on, and are custom classes called Box. So far I have:
[Code]....
How do I get from a string variable to the stage.focus?
stage.focus = txt_firstnameEdit; I need to make the blinking cursor at the txt_firstnameEdit when I enter the stage. but the blinking cursor appeared infront of string_0. string_0 is pre-entered in the textbox in my code.
For example this is what I see in the textbox... INameless I = The blinking cursor. How do I make the blinking cursor go behind like this? NamelessI
It successfully gives the TextField "txt" focus because when I type, the characters appear in the input textfield, however the familiar blinking text cursor/beam does not appear in the textfield. This makes you think it does not have focus, so you click the textfield to give it focus -- completely defeating the purpose.
I have created a container in Flash Professional CS5 for my project's CBT. I've been able to script many of the features we require using AS3, but there are a couple of things I'm still trying to work out. I would like the swf presently playing in one tab to pause and go silent when another swf is opened in a new tab (the sound is inside this externally loaded swf which is loaded inside a movie clip from buttons nested a movie clip down). I've tried :
var originalFrameRate:uint = stage.frameRate; var standbyFrameRate:uint = 0; addEventListener(Event.ACTIVATE, onActivate); addEventListener(Event.DEACTIVATE, onDeactivate);
[Code].....
This function is present when I publish the CBT with Captivate, so obviously there must be code available. You can set the Captivate button to open url in new window and pause movie. Is there something I can add to the html file that is similar to the "has Priority" for mobile devices or is there javascript that can be added to the flash itself?
i've a problem with my setFocus. i will use [n] to identfy the line in the code. this is a MouseEvent.CLICK - function from an other dynamic,non-selectable textfield. the textfield in work is one with an embeded font and some text in it.if i use line [3], i'll get the no blinking courser and no possibility to enter some words. also if i mark some other and click after that in the input-textfield directly there will no courser anymore.but this only happens in the first time using the swf. if i first click into the input-textfield, then set the focus to something else and trying the steps i wrote over here, everything works fine.
I have created an animation (see attached) where the stage can be dragged from left to right to reveal hidden areas off the edge of the stage. Unfortunately I need to add buttons containing links to websites within the dragable movie symbol and I can't work out how to do it.
I am using SWFOBJECT to embed my flash content. I have been worried about stage.stageWidth and stage.stageHeight returning 0 in Firefox/Internet Explorer; this problem is referred to in question #21 on the SWFOBJECT FAQ [URL]..I have been told that this problem is particularly prevelant on Macs. The SWFOBJECT FAQ (question 21) indirectly suggests that this problem does not occur with static publishing. Is this correct? Is it still advisable to implement a solution to this stageWidth/stageHeight problem, even if you are using static publishing?
- A.fla includes buttons, movie clips and also B.swf is loaded in A.fla using a LOADER
- i want to access elements in A.fla, from the actionscript codes inside B.fla to modify those movie clips and buttons based on actions going on in B.swf
for instance, lets say there is a button X in A.fla, and there is a button Y in B.fla, B.swf is loaded into A.fla, and I want the button Y to erase button X when clicked.
general question: accessing elements in a stage, through a SWF file loaded into that stage.
I'm writing a web based flash app that's written entirely in AS3. I have objects on the screen as part of a GUI. I would like the user to be able to resize the window, or make it full screen. I would like everything to auto-scale with the resize, but also remain in the same relative position on the stage.
I have a library swf (asset.swf), it's document class binded to Asset.as, and in the Constructor function of Asset,[code]as known to all, we cannot visit the stage attribute before the display object added to the stage.so, when my loader.swf try to load asset.swf, it throws exception and the loading come to failure is there some one tell me how to load the asset.swf? I cannot modify the asset.swf.
I've been working on a project that requires lots of scaling around a center point.
I always thought that stage.stageWidth and stage.stageHeight give you the dimensions of the stage you set in the properties panel no matter what. But when I went into fullscreen mode (with scaling), both the width and the height changed to the dimensions of the screen rather than staying the dimensions I specified.
I have a moving vehicle on the stage, which should change directions according to where I click on the stage.I already made it work using this formula:var angle:Number = Math.atan2(dy,dx)*180/Math.PI+90;However, I need the car to tween to the correct angle, instead of just "jumping" to it. While this is easy enough to do, the car sometimes takes the longer turn (especially when I click in the bottom-left quarter of the stage), and it seems unnatural.
In my AS3 code all the elements on the page are dynamically positioned depending on the current width and height of the SWF - providing it's not under a certain value, then the items are back in their original position.
When debugging in the Flash player the size all reports correctly however when run from a web browser it does not - initially.
This is my HTML & PHP code for the entire page:
HTML Code: <?php function hashId($fn) { $hash=md5_file($fn);
[Code].....
But I cannot get the size to report correctly without, say, clicking a button.
It seems to me like I need to force flash to re-draw the screen, but I had no luck trying to do that.
How do you make a movieclip move horizontally from the start of the stage to 3/4 of the stage. Stage size is 700 px by 600 px i want just one row in the middle of the stage. i want that movieclip to disappear right after it reach the end of the 3/4 mark.
When you resize the browser window the thumbnails rows and columns adjust accordingly to fit.I've managed to attach the thumbnails correct when my enableButtons() function is called but i'm unsure how to approach resizing.
Stage.align = "TL"; var numberOfGalleries:Number = 20; var thumbMarginX:Number = 163; var thumbMarginY:Number = 109;
In as3 What is the difference between calling stage.width and stage.stageWidth I read somewhere that if we have nothing on stage then the value of stage.width is 0,but what happen when I have nothing on stage but loading contents dynamically on stage?I have tried this and when i have loaded content dynamically on stage then i have got
stage.width=value; // where value is dynamic number
I created a custom textfield component that I need multiples of in a single swf. I also created a non-visual wrapper component to manage them. I am sending info from the textfields to wrapper. I was planning on using the child index to associate the info with the right component. The problem occurs when I have two instances of the textfield component and one of the wrapper on stage and I use stage.numChildren and it returns 1.
I am wondering if it's posible to set the backgroundcolor of the stage through as3 code.i am also wondering if it's possible to set the stage height and stage width through the code. for the application i wish to develop, the values of the stage color and the stage dimensions are provided by an XML file.
The problem is that even though this external movie covers the whole stage, My mouse can still "see" buttons that are on the stage, and I can click them. I don't want to be able to click the buttons through my external movie.
I have 4 movies that need to be loaded in sequence. The first movie loads the second one, the second one loads the third, then the third one loads the fourth. What I can't figure out is how to make sure there's only one movie loaded at any time. I've tried removeChildAt(0) and other methods. What's the best way to load a movie to the stage and wipe out what was on the stage?
I'm making a mockup for a client and I need to Load the .swf with the exact stage size so the graphic elements do not float outside the loaded movies stage area. [URL]Basic load code I'm using...