Actionscript :: Events Is The Event Buffered And Ordered?
Feb 11, 2010
I found an interesting questions regarding the events in action script: is the event buffered and ordered?
Ie) In a swfloader example, I setup a timer(1 sec) to run a function, in the function I setup a listener to event INIT of the loaded swf. It depends on the network condition that whether the timer handler or the INIT event will be first executed. Imagine a case that the INIT event fired first but the handler to handle the INIT event be setup later, will the handler be invoked?
Another question, if the loaded swf fired several events very fast, will the events be kept ordered as the fire sequence?
i have a video in which I can seek to unload parts (Pseudo-Streaming), the server return the video and it loads it from the requested second,the problem, i don't want to make a new request to the server if a part has already been buffered, here's what I have in mind, but can't achieve
Code: if(netStream_has_been_download){ //Just run the seek() command
I have a class with several methods I must run in an specific order. So, I created a kind of chain where each one calls the next in its last sentence (sometimes with calls, sometimes dispatching events):
internal function a(evt:SwapEvent):void { //started from custom event ... b(); }
[Code]....
But, as far as I know, Flash Player doesn't make a synchronous execution. i.e., it doesn't wait until method a() completes to execute b()
clean and bullet-proof implementation? This application will run in an endless loop 24x7
I've a container in a scrollpane with some vertically ordered movieclips in it (one on top of the other). I have another container of movieclips that I can drag into container 1. Once the new movieclip is dragged in, the other clips move to make space for it. Also, the clips in 1 can be dragged to a new position, and the other clips move up or down to accomodate the moved clip.
I did it using a lot of x and y positioning. It works, until I use the scroller. Then the positioning gets all screwy. My thinking now is to use arrays, but I'm wondeirng if it's possible when you're pushing an item into an array, to push it into a certain position in the array? So, push it into position 15 for example? How do you tell Flash to add an item to a certain array position?
randomly start an ordered list of SWF's.I have my main SWF calling up external SWF's. I have 2 groups of external SWF's From my main SWF Actionscript, I want to randomly play one SWF in Group A and continue cycling through Group A (in order) until it is finished.Then I want to randomly play one SWF from Group B and continue cycling through that list (in order) until the list is cycled through. Then repeat group A (random start, but staying in order), etc.
My current ActionScript works for Group A to randomly select and play in order, I need it to stop after it gets to the random starting point (so it doesn't repeat) and start up Group B (which isn't in there yet)
ActionScript Code: var logos:Array = new Array(); logos[0] = "logo1.swf";
[code]...
I need it to completely play through the Group A list before it goes onto Group B
I am trying to build an ordered list in Flash using html text but Flash doesn't recognize my <ol> </ol> and <li> </li> tags, my <br> tags work though...
This is my test code (the text is inside Flash at the moment):
Code: //Text Format var textFormat:TextFormat = new TextFormat(); txt.paddingTop = 2;
how do i get an ordered list using htmltext property of Text component? I tried using this: <ol><li>item</li><li>item</li></ol> but it rendered like an unordered list.
When recording a video to FMIS if the stream is buffered, does this get buffered in memory or does it use up local storage?
I am developing an application that will use a web cam to record videos which will then be submitted to the server. Ideally I would have liked to write the video to disk first and then upload later however, I understand that I can't do this with flash (my solution has to be in browser AIR apps aren't an option). I am ultimately concerned about video quality so in order to ensure that I loose as few frames as possible I'm planning on setting NetStream.bufferTime to a large value. I am concerned however that someone with a poor internet connection and a good webcam will quickly use up local storage assuming that it is set to the default of 100K.
If this is the case then I potentially need to think again about my approach - maybe even look into Silverlight 4, or at the very least try and explain to my users how to go into flash settings and set local storage to be unlimited.
I'm moving an movieclip using the cursor keys. The device it has to run on, is too slow to process the keys realtime, so the keys are placed in a some sort of buffer and the object keeps on moving for a while when the key is released.The device places 8 keys in the buffer per second, but flash can only process 5 per second, so holding the key for a second, will look like I've pressed it almost twice as long. Any way to counteract this? I've tried using Key.isDown, but that returns true, even though they key is released, until the buffer is emptied.
I've tried using the onKeyDown event to start the movement and stop the movement using the onKeyUp event, but it seems like the onKeyUp event only occurs when the buffer becomes empty. Even when I remove the onKeyDown listener, it seems like the buffer only decreases 1 key per frame. It might have worked when there is no keyrepeat in the hardware, but that is not an option. It would be good if there was a timestamp indicating when the key was pressed, or some way to clear the buffer, but I've not found one.
Whenever a youtube or any other flash content is buffered on the browser, isn't it true that is downloaded to the client computer ? So my assumption is that, any completely buffered youtube file should be found on my client right ? For example, when i view this video on youtube, i see that it is actually referring to this swf location [URL] How does youtube actually buffer this video on my computer then ?
Note: My objective is NOT to download youtube videos as i know there are extensions available for it. I just want to know how it works :) .
i'm trying to build a mp3 player that plays a (for istance) base64 encoded mp3 file.my needs is to protect original files and decrypt them at runtime.now, i'm playing with new Sound apis and SampleDataEvent like this:
ActionScript Code: public var s1:Sound; public var s2:Sound;
I can get which part of file in bytes is loaded using netstream.bytesLoaded,netstream.bytesTotal, I can get the current playing position using netstream.time. But I want to know how many seconds of video are already loaded (not the length of buffer, which remains constant).
Normally we use NetStream.Seek method but it will make the seek after the buffer area crossed the seek time length.(HTTP). Can we seek the video that is beyond the buffered area like youtube in red5. Will it start the buffer from the seek point.
what I'm trying to put together is some code that will load in multiple flvs, buffer the vids and have them play one after the other in a loop. I have so far code that loads in an array of flvs but doesn't loop. Also the buffering stops the play back for a moment towards the end of the first video, not sure why but changing Flush into Full doesn't help. Anyone know how to add a buffer that plays after a % of the movie it buffered or will buffer movie one and then buffer movie two while the first movie is still playing? As for looping goes I need a listener waiting for the last video in the array to be completed, but not sure how to pull that off.
I have a base class, and I created a class to connect to C# to which it sends and receives data. Now I want the base class to know when the Connector Class has received data and to get that data. so custom events are the answer right. But no matter how much documentation I've read, I can't get my head around this. My current class, if I extend EventDispatcher the base class can pick up fine but I need it to get the data that it received as well. So I extended Event and I've put a listener on my base class but it's not picking up the event (in fact although it's compiling it seems its breaking my connection to the C# as my C# client gets an error).
Should my connector class be extending Event or EventDispatcher. Then if it extends Event, I need to create another class to dispatch the event? someone said to me I don't need events as the callback will handle it, but my callback is in my connector class not the base class.
The upgrade version of FMS 3.5.3 append the new function about buffered stream, in order to resolve problem when the bandwidth no good caused the video getting more and more slow, but I can't find the configuration in which file.
I'd like to start playing a web-based video at a specific time, say 2 minutes in, even if the video hasn't been downloaded that far. I thought I could just "seek" to that time but that apparently only works when the video is buffered first.
So for example, this: Code: nc = new NetConnection(); nc.connect(null); ns = new NetStream(nc); ns.play("[URL]"); ns.seek(123); video.attachVideo(ns);
Seems to work if you have the video cached or buffered or whatever, but if you don't it gives the "NetStream.Seek.InvalidTime" error, which makes sense. I want to know if it's possible to start playing a video at a specific time, even if the video hasn't loaded up to that point.
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.
This isn't an exact duplicate of AS3: add event listener to loaded swf, actually it seems to be a mirror situation with non-mirror solution..
I have a test flash file that registers its own listener at first frame's actions.
trace("it's going to be OK"); stage.addEventListener(KeyboardEvent.KEY_DOWN, aKey);
Unfortunately neither line works when .swf is loaded into another movie. Assuming that stage object is wrong for such situations, which object should be used to get listener?
Is it necessary to rewrite loader in parent swf, as said in the linked question?
I have a counter that counts each time a special event in a game occurs.The code looks like this at the end of several movieClips' last frame:
[code]...
The problem is sometimes events get repeated, and though I don't mind if the event happens again, I don't want the repetition to count as a new number. I want it to count once and only once.
I'm having a problem with a custom subclassed Event class. Or I should say, I'm having trouble receiving events from this custom event class. I'm pretty sure I have everything wired correctly, the event is dispatched properly and my trace shows the Event instance being spawned. However, my eventListener, which is in another class, never fires its handler function.Have any of you run across instances where custom event classes fail to fire? I'm about at my wit's end.
I made a custom loader to replace the urlLoader and even tried a replacement for the _loader using the same custom event.Works great for the first addEventListener:
Code: urlLoader.addEventListener(Event.COMPLETE, onSwfLoaded).But stops on the second addEventListener.If I just apply the custom event to the following...
Code: _loader.addEventListener(Event.COMPLETE, onLoaderInit); VERSUS
Code: _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderInit);it works just fine.As soon as I use it on the contentLoaderInfo line, it throws that type error cannot convert CustomEvent to Event error.I also double checked that my custom event listener was overriding clone()properly and it looks like it does.
Can I create a single event listener for all mouse events ?
my understanding is no because: what's happening is that each listener is checking for a string in an event and comparing it for a match against a list which is the listener.
I created a button that has a movieclip in the rollover state. When you rollover the mouse, the movieclip will animate to appear as if the button will scale from a small to a large button even though it is the movieclip that is playing and not the button itself. But I also want to add a keyboard code to play the rollover instead of the mouse. I learned to write actionscript to play different scenes with the code below, but I'm not sure if I can play a button rollover with the same code.
stage.addEventListener(KeyboardEvent.KEY_DOWN, key_pressed); function key_pressed(event:KeyboardEvent):void { if (event.charCode==49) { gotoAndPlay(1,"scene"); }
I came to the point where I need to communicate between 2 objects (let's say Tank and the Cannon). It is tile game, and when the Tank approach specific tile I need my Cannon to shot the Tank. When Tank gets that specific tile I want to dispatch some custom event and have listener in Cannon class body to make the shot happen. Other way I would have to check in ENTER_FRAME loop (inside Cannon body class) if the Tank touched tile that runs the Cannon shooting - but this is not elegant and efficient. The issue is complicated by the fact that the Cannon and Tank are added to the Engine (document class) and can't simply hear for each other, because they seat on the same level in display list.
Initially I could addEventListener to the Engine, but this way my document class would enlarge to the XXL size (all listeners functionality, all methods for game etc). What I would accomplish is to have event listener in every Cannon object (defined in body class) listening for Tank's dispatching the event. I saw some 'Centralized Event Manager' article in the net, but can't download full classes [url]...
I noticed that the Object.watch and Object.unwatch methods are gone in actionscript 3.
I've tried to find alternatives but the event system doesn't dispatch events when properties change, There is a data binding system but I think that's just for Flex.
Does anyone know what (if any) the alternative is?
1. when i load 4 videos and ensure they are fully buffered from video progress event and bytesloaded==bytestotal . and then play them. I get sync issues for every other second.
2. when i download the vidoes and place them in my project folder and then load them ( no loading time) there are no sync issues. I cant understand why 1 is different from 2 as we are completely loading the videos in cache.
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