ActionScript 3.0 :: How To Store Global Constants For Flash App
Apr 18, 2010What is the most proper way to store "global" constants for a flash app:
a static data class
a dynamic data class
a dynamic data class via getter/setter
What is the most proper way to store "global" constants for a flash app:
a static data class
a dynamic data class
a dynamic data class via getter/setter
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
[Code]....
I'm having a little issue understanding scoping in this package environment. My question is this: Is it possible to declare globally visible variables and constants? I tried this with no successful results:
PHP Code:
package {
import flash.display.Loader;
import flash.display.Sprite;
import flash.net.URLRequest;
import games.mineAllMine.MineAllMine;
[Code] .....
I am having problem to recall the copied bitmap data to show on another private function which is difference from the private function which copy the bitmap process. I am new in AS3 so have no idea how do I make the copied bitmap data into a global variable..
Heres my snippet of code:-
private function export():void {
var bmd:BitmapData = new BitmapData(216.2, 468.29);
var a_matrix : Matrix = new Matrix() ;
a_matrix.translate(-242,-130);
bmd.draw(stage,a_matrix);
[Code] .....
This is the problem I am facing, I need to separate the copying process and showing process because I want my flash to show the copied image later on...
We have a project that has been built in Flash and as3. It is a video player of sorts that we want to fully customize. We have different images and color schemes that we want to be able to change very quickly. Right now we have config constants that we turn on and off for different schemes. And in the code there is a massive amount of different spots where the images and such are changed.When we create a new color scheme or whatever, we need to create a new config. Then we have to go through all of the code and put it in correctly.Basically any suggestions for how we can take the current flash project (maybe flex?) and make it customizable a lot quicker.
View 1 RepliesI would have expected, given the way Adobe seems to do things, that you could reference some of the non-ASCII keycodes using a static constant, for example KeyCode.UP_KEY. Am I dreaming? Or do you just assume 38 will be the up key in perpetuity..?
View 1 RepliesI have a class that holds some constants and will receive an object literal (associative array) with some data like this:
var ConfigObj:Config = new Config({
"Some" : 10,
"Other" : 3,
"Another" : 5
});
The class looks like this:
public dynamic class Config
{
static public const SomeProperty:String = "Some";[code].....
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?
View 1 RepliesIf I make multiple draw calls for various Program3D instances, is there a way that I can reset or nullify the constants if I'm no longer using them in the next following Program3D assignment?
Is it even necessary that I do something like this?
//Nullify 'vc0' in the vertex shader:
context3D.setProgramConstantsFromVector("vertex", 0, null);
Is there a way to compile SWC files in different targets (Debug vs. Release) similarly how you can compile a SWF file with the AS3 Conditional Compiler constants?
This link shows how SWF files can be compiled with predefined compiler constants:[URL]..
But I need to know how to achieve this with SWC files instead.
Note: I'm using FlashDevelop (Windows 7) to create the SWC (if that's any help to refine the answer).
I have some filters set up, and have assigned some global vars to them, which I then use in my Filters code to display the filters: myText:Filters [globals.data.glow1, globals.data.stroke1, globals.data.shad1] Works perfectly. Now I want to assign a global var to each global filter var to determine if it should be shown or not. So...
[Code]...
Is it possible to make global functions, much in the same way you make a global variable, reachable from anywhere in the project?
View 1 Repliesi defined the global variable in the first frame of my file, and i can access it on other frames, however i am trying to access it within a movieclip, and flash is telling me that it is undefined. does anyone know why this could be?
View 1 RepliesI always assumed constants to be good, obedient variables that are only set once, and thereafter never change.They are reliable and... well... constant. However, the term "compile-time constant" seems to pop up quite a bit.Does this mean that rather than treat references to the constant as references to a variable, Flash goes in (at least for numbers, booleans, and strings) and during the compiling replaces all the references to the constant variable with those actual values? For instance, this line during "edit mode":
stage.addEventListener(MouseEvent.CLICK, onClick);
during compile time, the Flash FIRST replaces it to this:
stage.addEventListener("click", onClick);
and AFTER that finishes the compiling into bytecode?
This method would be a little faster since it doesn't need to access the constant as a variable, but instead has the actual value, which is a fraction of a second saved, but it can add up in the long run.Is this what happens or am I way off? Why otherwise would there be the term "Compile-time constant", and what does that refer to?
Just wondering if there is a way to read class static constants from a SWF file server side. I have found things like getimagesize() but it doesn't have all these details. I guess that means I need a partial decompiler.Specifically, I have this class in my Flex project:
package
{
public class AppVersion
[code].......
How can I have a constant in a Flex application which I could apply at several places in a Flex CSS file? For example I may have a background color which is the same in several UI components and then I would like to have this color set in only one place and reused in all style clauses. Something like ...
public static const myColor = "#00FF00"...
component1 {
backgroundColor: myColor
}
component2 {
backgroundColor: myColor
}
Basically I want to call a const by a int. Here is the code I have so far...
public static const _100:String = "name=lion legs*type=legs";
public static const _101:String = "name=lion tail*type=tail";
public static const _200:String = "name=tiger legs*type=legs";
///more lines going down with the number on the far left being the main differentiating factor
public static function getByName(name:int):String {
[Code] .....
Is there a better way out there to call the constants by an outside int without having a switch function handle the logic?
I'm try to calling my sloppy global function by calling my global function class as u can see below.[code]
View 2 Repliesi can write constants in two ways:
MouseEvent.CLICK - "click"
MouseEvent.ROLL_OVER - "rollOver"
TextFieldAutoAlign.LEFT - "left"
etc.Is there any difference between the two ways of writing?
Despite if it is good practice or not, I read here that you can have package variables (or constants), so I tried this:
[Code]...
I want to create a function pointer object:
private var func:Object = { Class.Constant: function };
What is the clean way of doing this? I did the above and got
Error: Syntax error: expecting colon before dot.
And I'm not even sure that's right. The goal is that I can just do
func[ Constants ]();
I just found out that it is executed like a normal variable at runtime. Typically constants are supposed to be 'inlined'........ so when you write this:
ActionScript Code:
const SPEED:int = 5;
o.x += SPEED;
...you should get this in the SWF:
ActionScript Code:
o.x += 5;
...but when I decompile my SWF I get this:
ActionScript Code:
const SPEED:int = 5;
o.x += SPEED;
Is there a way to force the Flex compiler to inline constants in AS3?
How can I get the ord values of certain keys. Say if I want a function to run when the left arrow key is pressed or right arrow key. Or is there a constants list?
View 14 RepliesHow 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.
View 2 RepliesHow can I get the ord values of certain keys...say if I want a function to run when the left arrow key is pressed... or right arrow key....or is there a constants list?
View 14 RepliesI 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 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.
Say you have a web application that has a lot of business rules built around if-then comparison of String constants. These are used on both client-side and backend code, and at the moment are hard-coded badly throughout both places with lots of duplication and sometimes errors. What's a sensible way to refactor them out? Unfortunately, in most cases they must exist as using polymorphism would be much more hideous. Anything specific for flex/java? Is there an easy way to keep all those constants in one place and compile it into both client and server code?
Edit: I'm really looking for a way to share string constants between flex and java with compile-time checking of everything.
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.
[Code]....
How do you use config constants with values other than true or false? The only documentation examples I've found uses the syntax:
ActionScript Code:
CONFIG::CONSTANT_NAME {
//do stuff
}
But what if the constant is set to a value like "hello"? How can I set a block of code to only compile if the constant is set to "hello" but not "goodbye"? I tried:
ActionScript Code:
CONFIG::CONSTANT_NAME == "hello" {
}