ActionScript 3.0 :: Will Static Class Constants Be Too Slow
Feb 23, 2011
I am working on a Flash site template for which I am implementing the possibility for the users to change the theme dynamically while the site is opened.Basically, the site will have a few themes available and when the user selects a new theme, all of the site objects will change their properties (colors, alpha, fonts, etc) to fit the new theme.And my questions is what is the best approach to sending the theme information to all of the objects in the site.I was thinking of making a static class called "Theme" and when the objects need a property, they will call a static getter of the Theme class that will return the appropriate property value for the object.
But, from my understanding, static properties are quite slow and seeing that I may need quite a lot of them, maybe more that 100 for the whole site, will this approach be too slow ?
I am working on a Flash site template for which I am implementing the possibility for the users to change the theme dynamically while the site is opened.Basically, the site will have a few themes available and when the user selects a new theme, all of the site objects will change their properties (colors, alpha, fonts, etc) to fit the new theme.
And my questions is what is the best approach to sending the theme information to all of the objects in the site.I was thinking of making a static class called "Theme" and when the objects need a property, they will call a static getter of the Theme class that will return the appropriate property value for the object.But, from my understanding, static properties are quite slow and seeing that I may need quite a lot of them, maybe more that 100 for the whole site, will this approach be too slow ?
I have a class ErrorMessages which holds all my error messages as static constants. So I could access them like ErrorMessages.PASSWORD_INVALID or ErrorMessage.PASSWORD_TOO_SHORT. I want to know if it is possible to have separate classes that hold subset of these constants and access them like ErrorMessages.PASSWORD.INVALID or ErrorMessages.PASSWORD.TOO_SHORT, etc. This way I can more structured static structure and makes it much easier to use autocomplete. I tried few different ways and couldn't figure out if this was possible..
I am trying to set some public static constants on a class conditionally by passing variables to the compiler e.g. -define=CONFIG::ENVIRONMENT,'testing_server'
[Code]...
Obviously this means I have to tinker with long command line setting each time. I thought my initial approach was possible given the documentation and various tutorials I have read.
I have two Cairngorm MVC Flex applications (a full version and lite version of the same app) that share many Classes. I have put these Classes into a Flex Library Project that compiles as an SWC. Both applications use some static String constants. Right now, I am storing these in the ModelLocator:
package model { [Bindable] public class ModelLocator
I have declared some public static consts within a class Instrument. So that I can hopefully access them like Instrument.SAX, instrument.HARP, etc. etc. But when I go to trace out or compare the consts, it gives me this error: 1058: property is write-only
How do you go about creating a Class that just holds constants such as the StageScaleMode or StageAlign classes. I tried just making a class with just public static constants and an empty contractor but I get errors.
I have some code from a CS3 app composed of the .FLA file with an .AS file for the class that had definitions for two private classes in it. Yesterday I brought the files into CS4 and noticed that they did not compile. Gives an 1120, access of undefined property and names a constant. I have reduced this problem down to bare bones and it still occurs, so it is a bug in CS4.
Flash UI Components have many different styles to set, which require passing a string name to the setter method.while this certainly is not challenging, the use of a constants class would be beneficial but i can't find one.is there no constants class available with all of the possible style settings?
I'd like to make an object that has it's properties named by constants from another class but can't quite get it to work. I'd essentially like to do something like this: var myObject:Object = {Event.OPEN:"value", Event.COMPLETE:"value2"}; This syntax causes compiler errors.
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.
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'm almost certain that creating and accessing untyped data causes some performance penalty vs typing data properly. I am creating a class that accepts an untyped data in the constructor, and assigns that data to a local class variable as such (pseudo code):
class myClass{ private var foo:*; function myClass(inData:*){
[Code].....
To my understanding, im just passing the 'reference' of the stage or some display container into myClass right?
Even if there is a performance hit, it would upon class instantiation when myClass is created where the untyped foo is created. So, in thats the case, using untyped data for foo won't effect performance? Since there is no direct accessing of foo?
Or is there 'access' on foo in the update function since update() resides in MyClass and so does foo. It wouldn't matter much if its just a normal class but my whole application's update works in this class so if there is any performance issues, it's gonna effect everything 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.
[code]The compiler is throwing 3 errors of the same type 1119(1119: Access of possibly undefined property enemyList through a reference with static type Class.) and pointing to the 3 places where I used enemyList in the Hero class. Why cant I use the static array in the Hero class? Or is there another method to detect collision through the available enemies on screen?
I have a static utility class that must have a reference to the stage, and I'm not sure what is the best option for me to get the stage inside my class...
I've thought of these options:Pass in as a parameter of the function Have a static variable I can set to the stage I don't like either of these because they are ugly.
What methods can you suggest for me to get a reference to the stage in my static class?
I'm trying to make a static class that will change the text written in a TextField inside a SWF file.
In this case I have a MovieClip with a TextField inside with a message. I want to be able to make a class that giving this TextField and a message, that will change in the button.
Certainly that I'm forgetting something obvious, I get the correct trace messages, but the textfield disappears. The initial text is "Start" and I want to change that to "OK". For now I just want to change the text, but after I want to be able to change the text format.
So far I have this:
package { import flash.display.MovieClip; public class ChangeTextField extends MovieClip
i have to read the current class name inside a static method. For non-static method it's easy i just call getQualifiedClassName(this) but inside a static method this is off course invalid.
When I type a class name without new before, FlashDevelop does not show autocompleate. Is it a way to enable that feature? (do you have the same issue?)