ActionScript 3.0 :: Are All Functions Included From A Static Class
Feb 7, 2012
To rephrase my question: if you have a class with a bunch of static methods and you use one of them in your code, does the whole class get compiled with your movie? I suspect that it would be and, if that's the case, wouldn't it be better (from a file-size perspective) to use packaged functions instead?
I'm wondering if anyone has experience with if there is a big difference in performance in ActionScript 3 between keeping a class with only public static functions, and utilizing those functions often (as in a frame event at 30fps), and in turning the class into a "normal" class of which I instead make an instance and call the functions via the instance instead.
I realize this is kind of an odd issue, but I am wondering if there's any way to get Flash to allow me to access a class's static functions using a class variable that points to the class. Example:I create a class called FooClass that has a static function named fooI then create a variable of type Class that points to it
Code: var class:Class = Class(getDefinitionByName("FooClass")); However, when I try to call foo() using the variable, it errors saying the function
i am pretty familiar with tweaking as1/as2 performancehowever in as3 i am still a noob concerning optimization.i tend to have a class utils in my projects in which i carry a lot of static vars and functions.[code]
Ok, so I have a bit of a mess here (Which I'm probably not doing right anyway, which could be my problem...). I have a document class, I'll call it as Body.as, that creates an object from another class known as Headgear.as. There are also other objects created from other classes, or will be in the future. Now, amoung all this, Headgear.as and all of the other classes Body.as will use to make objects require the use of dragging functions (starting and stopping dragging). On stopping drags, position checks are then made to compare a particular hidden movieclip with the dragged MC.
To try and save myself some hassle (from making the same functions over and over to ensuring that when the objects are created I don't need to send a complete crapload of variables just to ensure the position checking function would work), I had the functions for the event listeners (Which are set-up on the draggable MCs in Headgear.as) just direct to functions in Body.as
I have uploaded a ZIP file that includes the following files:
- main.fla
- child.fla
You can download to review my code (very small 16kb): http:[url]...........This simple example has a main SWF file that loads a child SWF using the dynamic loader method. Below is the code in the main.fla file:
Code: Select all/* MAIN SW */ import flash.net.URLRequest;[code]........
how do I get both parent and child SWFs to communicate with each other dynamically (to be able to call functions from each other, or pass variables)?
Im trying to use an AS3 modification of gskinner's collision detection class, but this being the first custom class i've ever tried to implement, i dont what i'm doing.How do i implement it into my flash? Do I just put it in the same folder as my .fla and .as?Do i have to initiate it in the main class?From what i understand it creates a rectangle, what would i need to turn it into a simple true/false?
Alright, so I have a class that is linked (via the linkage panel) to a scrollbox class. I'll paste the class here:[code]Ignoring the formatting, the commented out functions are the ones causing the issue. Adobe says that it's a static class and I can't use non-static functions. The way I wanted to use it was:
1. Call the page button generating function above.
2. In the main code in my program is this line:scrollbox.setClickFunction(historyContent.generate Page);So when the buttons that are supposed to be generated are clicked, the scrollbox class can call the History pages generatePage function and pass it which page to show. (I did this because there was a lot of text and a limit on how much would display, so small chunks sounded logical).
3. In the onClick function (which I haven't finished yet because the rest wont work), when you click one of the buttons it calls the set function. Its that simple.
is it possible to send string to a class that isnt included in the same fla file.for example portfolio.fla is a main movie, it has an as file portfolio.as, work.fla is a secondary movie it has its own as file work.as, im loading work file into portoflio file and i want to pass a paramenter from portfolio.as to work.as
I am using get/set functions to make variables that are (or appear to be) read only. I can get it to work with instance variables, but not static variables. I found this, which seems to indicate that it's possible to use get/set functions on static properties, but the compiler keeps telling me I have duplicate function declarations. This is essentially what I'm using:
package { public class Foo { protected static var bar:int = 0; public static function get bar():int {return bar;} } }
It seems that Actionscript doesnt support defining static functions in interfaces. Whats the reasoning behind this?I think it would be useful to have that ability but I'm sure there must be a reason why its not there.
I'd like to have a class that will resolve calls to static functions that don't exist.If you have an object that subclasses the Proxy class, you can override the callProperty() method to catch calls to functions, as properties of that object, that don't exist.How can this be done with static function calls in a class? It cannot be done by making the overridden callProperty() method static. Is there another way?
I'm working with an application which was originally designed to make heavy use of static-variables and functions to impose singleton-style access to objects. I've been utilizing Parsley to break apart some of the coupling in this project, and I'd like to start chiseling away at the use of static functions. I will explain the basic architecture first, and then I'll ask my questions. Within this application exists a static utility which sends/receives HTTP requests. When a component wishes to request data via HTTP, it invokes a static function in this class: Utility.fetchUrl(url, parameters, successHandler, errorHandler); This function calls another static function in a tracking component which monitors how long requests take, how many are sent, etc. The invocation looks very similar in the utility class:
I have a Flash application that creates a sort of powerpoint presentation. All the 'slides' are stored in an XML files which is read and processed.
I'm trying to build the presentation using this XML file. At the moment, my main class has it's initial function main and a static function processXML main initiates my database class with a function called initDB. One of my issues is that initDB forgoes processing because it's dependant on an event listener. On completion of loading the XML files, the event listener initiates my static function on my main to create objects from this file.
The issue is that because the event listener continues the processing (after an indeterminate amount of time), the functions are no longer controlled by the main class.
I would want to use the frameScript method to add some stop and play methods to some frames.Normally I would declare the stop function:
HTML Code:
private function $FUN_FrameStop():void { stop(); return; } and then use it like this:
Code:
addFrameScript(47, $FUN_FrameStop, 122, $FUN_FrameStop); My question is, how can I create the same $FUN_FrameStop as a static function?
Static functions do not allow the use of this since static members are bound to a class and are not inherited by that class' instances. So, is there a way to create a function similar to $FUN_FrameStop, but static?
Is there any way to override static functions of Flash top level classes? Lets take Stage or Math for example. What if we want to change Stage.addListener functionality, is there any solution to this problem?
Main is my doccument class . how can i call Main.Caller
package { import flash.display.Sprite; import flash.events.Event; public class Main extends Sprite { public function Main():void { if (stage) init(); else
Hi there, i am hoping for some advice on structure/optimisation from some of you experts . I am working on a portfolio system that is modular, each module works in a self contained way and does not require the other modules to function, though they can be 'linked' by having them all reference the same PortfolioData() class.
im happy with how it is working, but i feel there could be a better way to share the datasource between all classes rather than duplicating it and storing a copy in each class.
I can't use dispatchEvent in my static class, I was wondering if anyone knew how I can achieve similar functionality or if it's possible at all to call dispatchEvent from my static class? I basically want to inform my action script code in my flash file when functionality in my static class is complete.
I am trying to create a class out of some code senocular wrote on another forum. The code controls the changing of a display object from one color to another. It's called InterpolateColor.I have managed to create a class out of the original code but I am trying to make the class static so that I don't have to create an instance of it in my controller class... I just want to access it by importing it at the top and then saying something like ActionScript Code:InterpolateColor.interpolate( _myMC, 0xFFFFFF );The problem, I keep getting errors when I try and change the class initialize line to ActionScript Code:static public class InterpolateColorWhat have I done wrong in my translation to a class that is preventing me from accessing this in a static way Here's the whole class:
I need to created a static AS3 class to pass variables between modules/ views. For some reason I don't see how to do this in my book or on Adobe. I want a class of "get" and "set" functions.