ActionScript 3.0 :: How To Implement An Async Method
Nov 14, 2011
it most used on network accesses. But now, I have a class that will do several things, including but not limited to network accessing, many many single loops within a huge code(maybe). The return time is unspecific, so I think about using an async method. However, when I run my program, I found that all things in call stack are stuck when the loop running. I made a short version of my code. First, the weird AsyncClass.as class is like this:
The argument to my method func() must implement the two unrelated interfaces IFoo and IBar. Is there a better way of doing this than declaring another interface only for this purpose that inherits from IFoo and IBar and using that interface as the argument type?
Actually, I already know the answer. The main reason I'm posting it here is for Google searchers, and if I copy and paste the post into my blog, my ActionScript code gets formatted all pretty, when all I have to do is add "as" tags here.
Error: Error #2069: The Loader class does not implement this method. at Error$/throwError() at flash.display::Loader/addChild()
I'm having some trouble implementing a "virtual" camera for use in game development with Flash CS4 ActionScript 3.0.Basically, what I'm trying to accomplish is to have a camera that moves about the main stage so that my character can traverse the level which is much larger in size than the stage itself.I've been using Sham Bhangal's virtual camera script, and when I implemented it by sticking the code into the first frame of a movie clip, it worked great!
From there, I moved the code into a document class that i could instantiate and then drop onto the stage as a child.Finally, I wanted to have a main "builder" document class that would be added to the main stage as a child, and within THIS class I wanted an instance of the virtual camera. This is where I hit some obstacles.how to properly instantiate the virtual camera within the builder class which is then added to the main stage. I have a Stage reference that is being passed to the main builder, but I don't know where to go from here. To what do I add the virtual camera to as a child? To the Stage reference in the main builder class? To the main builder class itself?The main issue is that when I export my movie with the virtual camera added as a child to the Stage reference within the main builder class, it complains that I'm not allowed to access certain values.
Code: Error: Error #2071: The Stage class does not implement this property or method. at Error$/throwError() at flash.display::Stage/set x()
This happens when I try to access parent.x from within the virtual camera class. I assume this fails because "parent" from this perspective is the main builder class, but using the Stage reference produces this same error.I am, of course, willing to provide more detail if something I've written is confusing, and I will gladly provide a detailed fix for those seeking to use a similar solution in the future.
So I've been trying to move the stage's X and Y position and keep on getting this error:
Code: Error: Error #2071: The Stage class does not implement this property or method. at Error$/throwError() at flash.display::Stage/set y() at Main/scroll()
As for why I'm trying to move the stage, I have a movieclip which moves according to keyboard input and i want the stage/Background to always center on him.
I want to create a high performance server in C# which could take about ~10k clients. Now i started writing a TcpServer with C# and for each client-connection i open a new thread. I also use one thread to accept the connections. So far so good, works fine.
The server has to deserialize AMF incoming objects do some logic ( like saving the position of a player ) and send some object back ( serializing objects ). I am not worried about the serializing/deserializing part atm.My main concern is that I will have a lot of threads with 10k clients and i've read somewhere that an OS can only hold like a few hunderd threads.
I have a problem with my Flex-Application. As you can see in the code-sample below i try to add some panels to a vgroup. The panels are getting their title from my MYSQL db. My problem is that I can't wait on the async call of the callresponder, so the panel doesn't get filled. How can I wait for the data from DB?If i try to build a new panel with a button it works. When i press the button one panel appears with the right title.
in a AIR mobile project I've done an initial loop that call a class that save images listed in an xml file to the applicationStorageDirectory of the device (iPad/android). With png files I have no problems since I got a jpg file. All files are correctly saved into the directory, but when a jpg occours it stops the save process (so the jpg is the last file saved and the loop on the list is incomplete, no others pngs are saved).
I am using Flex and Actionscript 3, along with Webservices, rpc and a callResponder. I want to be able to, for example, say:
loadData1(); // Loads webservice data 1 loadData2(); // Loads webservice data 2 loadData3(); // Loads webservice data 3
However, Actionscript 3 works with async events, so for every call you need to wait for the ResultEvent to trigger when it is done. So, I might want to do the next request every time an event is done. However, I am afraid that threading issues might arise, and some events might not happen at all. I don't think I'm doing a good job of explaining, so I will try to show some code:
private var service:Service1; var cp:CallResponder = new CallResponder(); public function Webservice()[code]....
I could ofcourse save the actions in an arraylist, but whose to say that the addToArrayList and the check if other calls are available do not mess eachother up, or just miss each other, thereby halting execution? Is there something like a volatile Arraylist?
I will call flashObject.httpRequest to complete a http request via flash. The problem is there is no reference about httpRequest is an async method or sync. It is important for my application.
private function httpRequest (uri:String, param:String="", method:String="GET"):void { var
I am aware that Action Script does not provide multithreading so when writing flex application we are limited to work on one thread. which is ok for rendering my UI.
However some questions arise when preferring flex over silverlight:
As a UI layer single thread is good enough but is it fair to assume that for Aync httpservice like operations in flex , internally it would use some worker threads to manage the async operation and then come back to the main thread ? it looks like it does since my UI does not freeze.Can the flex/flash player deal with multiple httpservice calls in parallel ? ( e.g more than one section of the UI loading data at the same time.)How about the animation stuff ( e.g the parallel animation ) - does flash player internally leverages some threading for accelerating graphics or is it all done on the UI thread ?
user clicks a button sends a Loader to see if the user has permission if the user has permission uploads a file
Unfortunately, this gives:
SecurityError: Error #2176: Certain actions, such as those that display a pop-up window, may only be invoked upon user interaction, for example by a mouse click or button press.
It appears that as a security feature, Flash 10 disallows certain functions (such as uploading a file) unless it is preceded by a mouse click or button press. However, since I am first loading the request for permission, it no longer see the MouseEvent event (presumably in the stack) and thus throws a SecurityError.
I'm having a weird situation that only seems to occur in IE. This may or may not be related to my other post ("Need to worry about thread-safety?"), but I'm not sure, so I'm putting this in a separate thread.I have a setup in my my flash app to load an arbitrary number of different sounds, but with an limit on the number of sounds being loaded simultaneously. It works like this (psuedocode):
EDIT: In other words, it starts loading up to the first, say, 5 sounds, and then after each one finishes loading, it starts loading the next sound in the queue.It works fine on everything except IE. And it will work on IE as long as the files aren't cached. But if they are cached, then in IE (and only in IE) the flash app will hang and produce a trace like this:
a b start callback start callback
[code]....
And after roughy 50 of those "start callback"s the flash app hangs and it never gets to any "end callback" or "c".It seems that loadSound is deciding to call onLoad synchronously, instead of asynchronously as would normally be expected. But this never seems to happen in anything but IE, even when the given browser has it all cached. So apparently it's either calling onLoad the wrong way in IE, or flash events like onLoad are susceptible to race conditions and need to be written accordingly.
I'm tryng to make a public static method call another method, but Flash throws error 1180, sayng that the method called by the static method is undefined.
i have a fortran method which creates random numbers. i want to convert this method to a flash method . I want to get numbers from this method and use them in the delay method of flash.
the fortran method is the folowing
real znew1 , zold1 ,a,m,z1,p,TIME1 a= 16807. m=2147483647 B=2
I have a class called Animal that has a method foo() and I call it out within the Animal class.
Code: protected function foo():void { trace("Animal"); }
I also have a class called Cat that extends Animal and overrides the method foo()
Code: override protected function foo():void { trace("Cat"); }
However when calling the function foo() from the superclass it traces out Animal not Cat (using a Cat object).How can I make superclass call out methods in the subclass?
two classes, both extend EventDispatcher. Static method in 1st class calls instance method in 2nd event not getting caught. [code]also, since dispatchEvent() is an instance method, is there any way of calling it without first instantiating the class? i expect not.
getUser was already in UserService.java. I just created getUser2 and it's identical to getUser. When I try to call getUser2, i get the "Cannot invoke method" error. question: Do I need to specify getUser2 in some other file? like in some configuration file? if so, which one and how do I do it.
Is there a way to get a method's parameters from outside the method? I know that there's an "arguments" property but it's only accessable from within the method. I'm working on a RPC system and need to store the method parameter types in a hash table for easy access later on.
Code: class A{ function A(){ trace("construct"); } private function moo(){
[code]....
yet this doesn't, I'd expect it to: construct, start mooing, moo!, moo!, moo!, ...yet the moo! moo! moo! doesn't appear, as if moo() never gets called it all.
I need to build an "interactive floorplan" for a shopping centre (or two). Many shopping centre websites already have this (eg Bluewater in the UK). Traditionally, the way to build such a floorplan / map is to do it in Flash. The actual floorplan is a Flash asset and the data that describes which retailer is in each location is fetched from the webserver as XML. That way editors can update the location of retailers without having to edit and recompile the SWF file. However if the floorplan itself changes (for example, a larger shop is split into two smaller ones) then the map has to be edited. Another disadvantage is that the data isn't readily available to third parties for mashups etc. So apart from Flash what would you consider using to achieve the same effect? I know of SVG but IE doesn't support it.
I'm learning layouts in Flex. I try to make the following layout.The red arrow means when enlarge the window, the red arrow widget will become large too. Can anyone implement this layout in Flex?
On the site we need to implement a mark on the photograph. By type as in facebook. It is desirable but not necessary that the selection of the object was not the rectangle, and polygon. There is a ready-realization? It does not matter what technology to use php, flash, and other, exotic but not necessary:)
OK, from what I know actionscript in Flex runs asynchronously. I need the ability to run a method in a loop synchronously. Consider this code:
public class CustomerContainer extends VBox { public function CustomerContainer () {
[Code]....
This is not my exact situation as it is a bit more complicated to explain here. There is an abstract class and several custom view objects derived from it. Some of the views are dependent on others being completed first but I cannot seem to order them in the correct order. TIMERS are not an option. Probably not explaining this correctly.
How to achieve Flex Localization !! In my current project other than English, I need to change the language to French/Spanish also.I am using FB 4.0 and it integrated with Java/Jsp/xml. There is lot of integration in almost all modules. Here the requirement was, i want to display a comboBox with French/Spanish options. Now based on the selection whole application language has to change ie either French/Spanish.
implement closed captioning into my FLVs. I have successfully set up the FLVplayback component, and the FLVplaybackCaptioning component to work. That's not the issue. The issue is, once I have my swf, flv, and xml files (needed to successfully use CC in a FLV), I need to insert that .swf into my captivate project.
It appears to insert/import OK, but once I publish the project, the swf does not appear, and in fact the FLV icon sits on the slide rapidly blinking. Neither the video plays, nor can I even see the playback component/closed caption component (swf) that holds the FLV.
All paths are relative, so the only things I can think of that may be causing the issue are:
a)Captivate doesn't support CS3 FLVPlayback or FLVPlaybackCaptioning components
b)Since Captivate allows importing of FLV files directly, running the FLV through the component's swf is a problem
c)The hierarchy of files needed for the Closed Captioning FLV (xml, flv, swf), interfere with compiling the new Captivate .swf upon publishing I've also been told that the FLV captioning component only works in Actionscript 3.0 which runs on Adobe Virtual Machine 2.Captivate publishes .swf files using Actionscript 2.0 which runs on Adobe Virtual Machine 1. Therefore, what I need to do will not work.