getter and setters are really easy in reality - simply an example is such

private var __someproperty:Number = 0;

public function get someproperty():Number { return __someproperty; }
public function set someproperty(value:Number):void { __someproperty = value; }

Note that you can exclude a get or set so to improve security (passwords etc) or just to read information such as status information.

Hope that helps,
Samuel



On 13 Aug 2006, at 13:01, shemeshkale wrote:

hello group.
using flex 1.5, i want to make a 3 state checkbox so i have extended a
button to do this.
on this button i have added a new property named : checkState.
please see the code below for my 2 files.
i know there is a better way (much more elegant) with the use of
get/set to make a custom property.
i just dont know how to use them getter-setter.
could you, PLEASE, take a look at my code and tell me how is this done
with get/set?

mxml file:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml"
xmlns:myComponents="myComponents.*" backgroundColor="#0066CC">

<mx:Panel width="50%" height="90%" verticalAlign="middle"
horizontalAlign="center">
<mx:Button label="check state" click="textA.text+=' ..state:
'+myBtn.checkState;" />
<mx:RadioButton label="semi" click="myBtn.checkState = 'semi';
myBtn.dispatchEvent({type:'stateUpdate'})" />
<mx:RadioButton label="true" click="myBtn.checkState = 'true';
myBtn.dispatchEvent({type:'stateUpdate'})" />
<mx:RadioButton label="false" click="myBtn.checkState = 'false';
myBtn.dispatchEvent({type:'stateUpdate'})" />
<mx:Spacer height="30" />
<myComponents:tri_state id="myBtn" checkState="true"
useHandCursor="true"/>
<myComponents:tri_state id="myBtn1" useHandCursor="true"/>
<myComponents:tri_state id="myBtn2" checkState="false"
useHandCursor="true"/>
<mx:TextArea width="80%" height="100%" backgroundColor="#CCCCCC"
id="textA" />
</mx:Panel>
</mx:Application>

The tri_state.as :
class myComponents.tri_state extends mx.controls.Button {

public var checkState:String;

[Embed(source="images/3state_true.png")]
public var state_true:String;
[Embed(source="images/3state_semi.png")]
public var state_semi:String;
[Embed(source="images/3state_false.png")]
public var state_false:String;

public function tri_state(checkState:String){
setStyle("horizontalGap",0);
setStyle("borderStyle","solid");
width = 12;
height = 12;
addEventListener("click", this);
addEventListener("initialize", this);
addEventListener("stateUpdate", this);
}

private function stateUpdate(event:Object):Void{
if (checkState == "true")icon = state_true;
else if (checkState == "semi")icon = state_semi;
else icon = state_false;
}

private function initialize(event: Object) : Void {
//mx.core.Application.alert(""+semi);
stateUpdate();
}

private function click(event: Object) : Void {
if(checkState == "false"){
icon = state_semi;
checkState = "semi";
}else if(checkState == "true"){
icon = state_false;
checkState = "false";
}else if(checkState=="semi"){
icon = state_true;
checkState = "true";
}
}


__._,_.___

--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com





YAHOO! GROUPS LINKS




__,_._,___

Reply via email to