As I started developing mobile apps for iOS/Android using Adobe AIR I encountered strange problem (or feature). If you create Sprite and make it draggable using startDrag/stopDrag inside MOUSE_DOWN/MOUSE_UP event handlers, everything works. But if you add another listener MOUSE_CLICK to the same object, it starts to fire together with MOUSE_UP. Logically this behavior is all right.
What I need is to prevent firing MOUSE_CLICK handler when user drags the Sprite (startDrag) and I need it to fire when user did not drag the Sprite. What I'm trying to create is a small thumbnail bar which is draggable and after clicking on concrete thumbnail its large version/image opens up. This is actually not possible as MOUSE_CLICK fires everytime user drags whole thumbnail bar so large image opens up everytime.
As soon as I start to drag the scrollbar, I get an error #1069 telling me that MOUSE_UP not found on flash.events.MouseEvent and there is no default value. I was watching a tutorial from Todd Perkins, and the scrollbar is built after his model. I really hope for an answer, it's killing me
I'm taking my first stab at writing a custom flex 4 component by extending the UIComponent class. Unfortunately, I cannot get the component to respond to any sort of mouse events.I've tried setting mouseEnabled to true is the component, as well as setting mouseChildren to true in the parent (the stage object). It seems whatever I do, my click events can be detected from the stage, but not with the component.Here is my component class:
package components { import mx.core.UIComponent; public class DrawCanvas extends UIComponent {
I'm having a problem with this menu tutorial I followed from ASGamer. I have done and used most, if not all of the tutorials from that site.Anyway my problem is their base menu class;
I keep running into problems where I want to add an event listener onto a class instance RIGHT after it's instantiated, like this: Code: storiesXML = new XML(XMLdata); storyBook = new vStories(XML(storiesXML.stories)); storyBook.addEventListener("storyBookLoaded", storyBookLoaded); . . .
But by the time we arrive at the third line, the "storyBookLoaded" event has very often (inconsistent) already been dispatched from my class instance: Code: var evt:Event = new Event("storyBookLoaded", true, false); dispatchEvent( evt ); ...
(Even though quite a lot has happened in the class before that.) To be clear, I don't want to add storyBook as a display child, and even if I did, the addChild() method would have to be called after instantiation of storyBook, so we'd have the same problem. I know I could set a timer in the vStories class to artificially delay the dispatching of the event, but that seems really hack-ish, and would have a real compounding problem if I have to do it too often as everything builds up. How to make sure custom communication events happen after their listeners are set?
I'm writing a SWF that I'd like to communicate with a Java process via Sockets. This is usually quite easy with standard Sockets, but for some reason the events described in the Socket documentation aren't firing when all signs say they should be.
On the Java side, I've set up a ServerSocket that's listening on port 8080. Using netcat I've confirmed it works as designed.[code]...
When I run the resulting SWF, all I get is "Called connect!" on the stage, and none of the events ever fire. Even more strangely, when I investigate the communication from the ServerSocket on the Java end, it receives and accepts a connection. When I close the SWF the code calling my Server completes as normal -- meaning it was hanging on a connection made with my SWF.
I'm left with a few questions...
With the exception of the event handlers, this is the end of control for my code (after the connection is established, we just wait for events and render them appropriately). Could the entire program be "terminating," and I'm just misunderstood about the Runtime model?Are there visibilty/naming requirements for the callbacks for them to be called? They're all public, but could it be that the Runtime isn't seeing them?Are there any gotchas with AS3 Socket programming? I kept thinking this was an issue of sandboxing, etc., but the SECURITY_ERROR didn't fire either.
whats the easiest way to code tooltip methods to my different classes I currently have working. for example mylabel.setTooltip("text to show",true); mylabel.removeTooltip();so that any event anywhere could call a tooltip. The tooltip follows your mouse movement basically. If the method was called from an MC and the second parameter which is a boolean is set to true: mylabel.setTooltip("text to show",true);
Then the tooltip would only show while the mouse was over that label, componet or MC. If it moved away it would automatically fire the event to remove it. Due to the urgency of this help im willing to pay a small fee for anyone who can write a quick tooltip .as that does just that.
This simple code: var loa:Loader = new Loader(); loa.contentLoaderInfo.addEventListener(Event.INIT, onLoaderInit); loa.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderComplete); loa.loadBytes(someByteArray); Sometimes works, but mostly doesn't. Neither 'onLoaderInit' nor 'onLoaderComplete' fire. 'someByteArray' is always a valid ByteArray, stored in a local SharedObject
Can anyone tell me why I would not be getting Netconnection.NetworkChange and Netconnection.Closed events would not be getting fired when I am working on Flash CS5?
I get the Success event, but when I am attempting to test my reconnection code I pull out my network cabled and I never get the closed event.
Interestingly, I do get the Closed and NetworkChange events when I am debugging, but not when I just run the movie.
This is problem is cropping up in Flash CS3 rather than Flex, but it's Actionscript 3.If you paste the code below into the main timeline on frame 1 and test it in Flash, the COMPLETE and INIT events both fire. And in Firefox and Safari it works too. INIT and COMPLETE both fire. But in IE (6 and 7, both with the latest flash player) on a PC only the INIT event fires.
Code: var debugText:TextField = new TextField() addChild(debugText) var onRootLoaderInit = function (event:Event):void{ debugText.text += "INITIATED." + " " } var onRootLoaderComplete = function (event:Event):void{ debugText.text += "COMPLETE." + " " } loaderInfo.addEventListener(Event.INIT, onRootLoaderInit); loaderInfo.addEventListener(Event.COMPLETE, onRootLoaderComplete);
I'm using the jpgencoder to save a few thumbnails out from flash. The first time I save an image it works just fine, but the second time I try, the image saves but I get absolutely no events fired off from the URLLoader that I'm using with it. If I refresh and try it again, then again it will work once, but not twice. Here is some sample code of what I'm doing:
Code: var jpgURLRequest:URLRequest = new URLRequest("JPEGEncoder.php?path="+path); var loader: URLLoader = new URLLoader(); jpgURLRequest.contentType = 'application/octet-stream';[code]....
i have an .as class that extends mx.containers.Canvas (it's a draggable border of a resizable component), it becomes draggable on MOUSE_DOWN and stops being draggable on MOUSE_UP, MOUSE_OUT and ROLL_OUT. before calling startDrag() i create a Rectangle to define the drag area, i also have a _dragging: Boolean variable to control if it's draggable at the moment. the problem is that when i click this border it jumps to a negative coordinate without calling startDrag or switching _dragging to true.
i've overriden get x, set x, get y, set y and move() methods in order to solve it but the only thing i got was the fact that position changes without calling coords setters or move(), but at the moment it's changed a getter is called and returns new (negative) value so my question is what happens on startDrag() and how to filter unwanted incoming coords values?
as you can see, I have a container MC which I have added to the stage. I set its drag constraints using a Rectangle(). I then add the 'cat' child movieclip to the container, and I want this to be dragable too. However, as soon as I click on my cat when testing the MC. It shoots to point x=0 y=0 on the stage and doesn't move.
The container MC can be moved without any trouble.
If I remove the rectangle bounds from the containers startdrag() function. both MC's can be dragged without any issue.
I have a pretty elaborate class that extends Socket and performs some serialization and data protocol stuff. It works pretty well when I send small messages. However, when I send anything over about 132KB at once, the SOCKET_DATA progress events stop firing -- or at least the function I've got listening for them does. My class is called RPCSocket and I assign the socketDataHandler function like this in my constructor: addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);
My socketDataHandler function (with lots of comments) is attached. Is there some limit to how much data can be sent over a socket at once? Is there something wrong with my code? Here's the trace output: Code: socketdatahandler bytesAvail:4380 buffer length:0 reading bytes into buffer for concat buffer length after concat:4380 buffer state:0 [Code] .....
click a movie clip but depress the mouse button on another movie clip, the MOUSE_CLICK event is NOT triggered in the stage? If you click a MC and depress on the same MC, the MOUSE_CLICK event successfully arrives on the stage, but not when you move it outside the MC. I tried using capture=true but no use.
I'm encountering a weird phenomena. I have a multi nested display object structure. Some of the deeper display objects have MOUSE_CLICK events. But as soon as I set main display item container.rotationX = 5 then the mouse events don't work anymore.
When the flash loads, the slideshow automatically starts. Then when i cpress on any of the thumbnail, then the timer for slideshow is stopped and currentIndex is updated, then the timer for slideshow is started. When i click on thumbnail images, everything is working except on one thumbnail image.Thus an error is showing which is
following:TypeError: Error #1010: term is undefined and has no properties at imageGall_fla::MainTimeline/slideTransition() at flash.utils::Timer/flash.utils:Timer::_timerDispatch() at flash.utils::Timer/flash.utils:Timer::tick()
Code: public function setupDragDrop(asset:MovieClip) { asset.addEventListener(MouseEvent.MOUSE_DOWN, function(e:MouseEvent) { trace("1");
[Code]....
so basically just a function to add drag and drop functionality to an asset, note that when you mouse_down on the asset it takes it from where-ever it is and moves it to a container that sits at the top level in front of everything else.
This however appears to 'disable' the mouse_up event, which is never called in this case. If i remove the re-parenting then the mouse_up is called fine.
Code: var buttons:Array = new Array( _button1, _button2,[code]........
I have 3 buttons on my stage (this is a small part of a larger project), named _button1, _button2, _button3 declared in an array so I can dynamically assign listeners and use a substring of the instance name to determine which button was clicked for other functions.My problem is that trace(e.target.name); returns the value _button1 on ROLL_OVER and ROLL_OUT as expected. However when clicking the button it returns "instance9" instead of the actual instance name I gave it.Why is this happening and how do I make it return the correct name? Why the hell would my buttonClicked function return a different result from the buttonOver function where the target is the same button for each function?
Is it possible to call a mouse-up listener if the mouse is stationary? So, if the mouse of moving over an object, and the mouse stops, you can send a mouse_up. My reason is because I'm working on a touch panel screen and it seems to keep the mouse on a constant state of left click down so I can't release any objects that are being dragged.
What if I want to dispatch MouseEvent.MOUSE_UP when un-clicking only some objects, not all of them? I mean, when I add eventListener that listens for MOUSE_UP, it's dispatched (thought with different targets) every time I un-click anywhere, if you understand what I mean. How can I "fix" it?
How do I write a single function that would handle all three events of a single button? I am finding myself with 3 listeners and 3 different functions!