Xml :: Flex 4: Getter Getting Before Setter Sets?
Jun 3, 2010I've created an AS class to use as a data model, shown here:
package
{
import mx.controls.Alert;
[code].....
I've created an AS class to use as a data model, shown here:
package
{
import mx.controls.Alert;
[code].....
Which is a much better practice in binding a value in Flex?
View 2 RepliesI'm having trouble updating a property value of a custom class (SubLoader) using a getter and setter. Inside the if() statement of the main fla you can see my attempt to set the percent value. Running a trace() method before the if() statement always outputs '0' for some reason. Tracing after the if() statment outputs an actual value. I can't figure out why the percent property always traces as '0' before the if statement even though I am updating it with each progress event.
[Code]...
Anyone know a workaround to make static getter/setters?
View 2 RepliesI seem to have run into a situation where when I push a value to an array held within a singleton via a getter/setter , Flash seem so access the getter over the setter method. Within my command/controller (I am using RobotLegs)
override public function execute():void {
// various line of code here
//Place screenshot image into an array from model for later reference.
model.unitScreenshots.push(screenShot); // screenshot is just a Bitmap object
}
The getter and setter within my model e.g. robot legs singleton
public function get unitScreenshots():Array {
return _unitScreenshots;
} public function set unitScreenshots(value:Array):void {
_unitScreenshots = value;
}
When I set a break point on both the getter and setter, only the getter method is being called, why? I would think that a push value on the array would trigger the setter, not the getter.
I'm trying to create a property that can be set by extending classed and read publicly.I couldn't think of a good naming convention for a protected property with a public getter, so I tried to do this:
public function get name():String{ return _name; }
protected function set name(string:String):void
{[code]......
However I get the error (when trying to set name in an extending class): 1178: Attempted access of inaccessible property name through a
reference with static type testing:TestComponent.1059: Property is read-only.
If I change the setter to public, it works fine.
I recently completed a tic-tac-toe game in AS3, using some simple function-based code I had written in C many years ago.Now I'm on a quest to do it the "right way" using OOP techniques and best practices.Everything is now divided into neat little packages, it looks pretty, and the last part of my journey is to get all the little buggers to communicate with each other.I want to move the code which holds the game state from my main to it's own class in com.okaygraphics.model.GameState.The problem is nearly every other package gets and sets these game state properties.I'm trying to figure out the simplest way to encapsulate this stuff, while still allowing my other classes to access it.
1) Do I need a constructor? I mean, my program will never have more than one GameState. If I should call my getters/setters as instance methods, how do I get each other class to reference the SAME instance from their respective packages?
2) Do I even need getters and setters? Perhaps the class could just have 3 public properties? If so, how would I acheive the proper scope with regard to my other classes?
3) Should I assign everything to the class itself using the static keyword? If so, how would I implement and use those static methods?
4) Is this a mistake? Did I totally just program myself into a corner?
i dont get the advantages of using getter and setter instead of setting the var public.
View 7 RepliesI have two functions one that sets and one that gets a number. The set one works, but the get one doesn't. I have it trace the set it returns the correct number, but when I set the getY function, it doesn't give me anything at all. When i took the number out of the trace it just gave me back only text. What am I doing wrong here?
ActionScript Code:
public function setY(y):void {
y = y;
[code].....
I have a .as file with class Main which contains:
Code:
public function set Set_AnimationFile(FileName:String):void
{
this.FileName=FileName;
[Code]....
How do i access these functions from my timeline script?
I have tried
[Code].....
I have written a class, which is basically a textfield for forms. It will eventually have several validation modes built into it too, which will be set by setting a property of the object.anyway, my problem. Basically my setters are empty if the movie is used as a loaded swf within another movie.I have an Event listener within the class listening for the Event.ACTIVATE event (still not sure exactly what this does...) though i do know that i need this in place for the setters/getters to work.If i create objects from my class, set some properties everything is spot on, though the moment i load this working movie into another movie the Event.ACTIVATE does not fire.[code]Now, if i run this movie its perfect - everything works as it should, right down to the validation.however, this movie is to be used within another movie. When i load this movie into a parent movie my fields aren't added to the movie.
View 5 RepliesI'm trying to make a class that extends the Sprite, have some private properties attached to it and be able to read and write those properties using getters and setters. Simple... but the compiler throw this error "Access of possibly undefined property speed through a reference with static type flash.display:Sprite."It works if I set my class to extend the MovieClip object.Could someone explain me the logic behind this? why I can't use getter and setters with a Sprite?Here is a sample code:
package {
import flash.display.Sprite;
public class Vehicle extends Sprite{
[code].....
I'm trying to make a class that extends the Sprite, have some private properties attached to it and be able to read and write those properties using getters and setters. Simple... but the compiler throw this error "Access of possibly undefined property speed through a reference with static type flash.display:Sprite."It works if I set my class to extend the MovieClip object. someone explain me the logic behind this? why I can't use getter and setters with a Sprite?
[Code]...
Is it possible to have a property with a public getter and protected setter? I have the following code:
public class Mob extends Sprite {
// snip
private var _health:Number; // tried making this protected, didn't work
public function get health():Number { return _health; }
protected function set health(value:Number):void {
[Code]...
I did have this.health -= dmg; but I split it out to get more details on the compiler errors. I don't understand how the property would be considered read-only within the same class. I also don't understand how it's inaccessible. If I make the backing field, getter, and setter all protected, it compiles but it's not the result I want; I need health to be readable externally.
I have a problem whereby in AS3 using Flash Builder 4 using a public getter with an internal setter gives me the error "property is read only", like so:
[Code]...
"Getting" the hang of Getter/Setter methods, but could use a review of my syntax. Does the follwing demonstrate best practices, meaning the least awarkward application of the technique?
Code:
// in Calculator.as
class Calculator {
private var _priceCD:Number;
private var _priceShocks:Number;
private var _priceCover:Number;
[Code]...
The generally used workaround for this, is to use a regular function instead of a getter/setter. This results in having to have ( ) after the function variable obviously. The question is, can a Function variable be assigned to a getter/setter function and retain its attribute of not needing brackets.
Below is some Pseudo code representing the question:
#########################################################
public class Foo(){
private var prop:Object;
public function get Prop():Object{return prop;}
[Code].....
In Flex, you can add functions to the prototype of a Class; but how do you add a setter? For example, with A some (non-dynamic) class, you can do this:
var o:Object = new A();
A.prototype.myFunction = function():void{trace("foo");}
o.foo();
And that will call the foo function. But how could you add a setter, so that setting the property calls the setter (just like it would if you declared the setter in the "normal" way on the A class). So what I want is something like this:
// doesn't work!
A.prototype["set myProperty"] = mySetter;
o.myProperty = "test"; // should call mySetter
PS: Manipulating the prototype is an unusual thing to do in Flex, and not something I'd recommend in general. But for the sake of this question, just assume that there is a reason to dynamically add a setter.
I am trying to scale a swf that has been loaded via a swfloader. When I get the complete event or the init event the dimensions of the swfloader are still zero. I don't see a value in the dimensions until I do a resize of the browser window. The swf is just an animation. Trying to resize the actual swf content gives inconsistent results.
View 1 RepliesGetter functions allow obj.meth syntax instead of obj.meth(), I'd like to create an anonymous one of these to return from another function. function get ():Object { } is invalid syntax. I don't suppose Flex offers an easy way to get this functionality, if it's even possible?
View 2 RepliesI can see that when I set htmlText in a textarea control, the text property contains the html free version of the text. So there is a parser somewhere that is ripping of html from the content, which would be very usefull for my purposes.
However, based on the flex source code, the setting of html is done in UITextField.as, which is the type of the textfield member of TextArea. The line that does the work is:
super.htmlText = value;
in function override public function set htmlText(value:String):void Trying to follow the class hieararchy, I end up in FlexTextField class, which extends flash player's textfield class. It appears the functionality I am after is in flash player. So is there any way of accessing this html cleaning function?
I am trying to override the text setter in the Label component but it behaves weirdly sometime super.text works and sometimes not! and the traces show that there's no error with my code.
here's my code:
import spark.components.Label;
public class LabelXX extends Label
{
private var _initialText:String;
[Code]....
I have a component where I expose the property 'questions' with the following code:
private var _questions:ArrayCollection;
private var questionsChanged:Boolean;
[Bindable("questionsChanged")]
[Code]....
In this component, I use commitProperties() to implement my logic.
I use Cairngorm and the 'questions' is in the model and hence it's defined as a source for data binding.
When the 'questions' ArrayCollection's size changes elsewhere in the application, it is not invoking the setter method in the component that is destination for the data binding.
i want to use XML to save some configuration for elements in my app. in my example i want to add 6 additional configuration sets to one "main" XML. each set can be config1 or config2. In this case i added 3x config1 and 3x config2. if i trace my results i do not only get the wrong order of elements but also some "strange" binding behavior. Of course this is a simplified example. my configuration sets are more complex (this is why i use seperate xml-objects for each config).
[CODE]...
I want a custom function called after the setter call.
An ObjectProxy on variables with PROPERTY_CHANGE listener is the only way ?
I have a setter and getter method , the getter method should return an array collection but it's always returning an empty array collection even when I've run trace to check on it.[code]...
View 1 Replieshowever I need to create a gallery with two rows of thumbnails representing Before & After situation. So the xml would have to make a reference to 2 sets of images/thumbnails. I don't even have to have them scrolling. Is there an easy way of modyfying the existing code?
View 2 RepliesI'm finally reading up on commenting code with ASDoc (http:url]....) but the way ASDoc is set up doesn't seem to agree with the way I write my getter/setters.Here is how I write them:
Code:
//I want to add the ASDoc tags here, before this chunk of code
private var _enabled:Boolean = true;
public function get enabled():Boolean[code]...
if I ad the tags where I want them, if I understand correctly, they will comment the private variable instead. Bummer.So, either I change the coding style I have been using for the past three years, or insert the tags inside of my code, making it ugly and less structured. I'm leaning towards option A.how do YOU write your getter/setters so they are ASDoc friendly?
I have a project to do and I'm not sure how to get it done. I have some experience using xml to load images into flash but that was one at a time. the project that i'm currently working on needs to work like something like this.
I need flash to load in three images at one time(from an xml file) and display them in a horizontal line, and then move across the stage from one side to the other.
i know how to load one image at a time but not multiple. and i don't know how to make the images slide across the stage in a line.
If I import a font to the library, am I correct in assuming that it imports the massive character set (all). There seems to be no setting that I can see where to specify the glyphs or level of character support for example all the funny characters.
View 9 Replies