views:

126

answers:

3
private var _product:Product;

        [Bindable]
        public function get product():Product
        {
            return _product;
        }

        public function set product(p:Product):void
        {
            _product = p;
            tn.selectedIndex = 0;
        }

<mx:Label text="{product.name}" fontSize="11" fontWeight="bold"/>

How are they getting the product.name value which is inside product class.

package samples.flexstore
{

[Bindable]
public class Product
{

    public var productId:int;
    public var name:String;
    public var description:String;
    public var price:Number;
    public var image:String;
    public var series:String;
    public var triband:Boolean;
    public var camera:Boolean;
    public var video:Boolean;
    public var highlight1:String;
    public var highlight2:String;
    public var qty:int;

    public function Product()
    {

    }

    public function fill(obj:Object):void
    {
        for (var i:String in obj)
        {
            this[i] = obj[i];
        }
    }

    [Bindable(event="propertyChange")]
    public function get featureString():String
    {
        var str:String = "";
        if (triband)
         str += "Tri-band ";

     if (camera)
      str += "Camera ";

     if (video)
      str += "Video";

     return str;
    }

}

}
+1  A: 

"{product.name}" , the product refers to the getter method!

That's the trick of Flex/ActionScript 3's getter and setter methods http://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Book_Parts&amp;file=ascomponents_147_08.html

Satish
Can u show me an example that of that in FLEX
A: 

"name" is a public var on the Product class. By definition, "name" will be accessible to any other class. That's what "public" means.

cliff.meyers
A: 

_product is a private instance of the Product class. They are supplying the set product method with a Product value, which sets the _product private variable to an instance of the Product class.

The bracket notation in the text="{product.name}" portion of the above code is shorthand notation for binding the contained variable, in this case the name property of the product instance, to the component property (text). When the set product method is supplied a Product instance, Flex fires events internally that update the components that have that property bound.

Defining Data Models - Flex Quickstarts

Joel Hooks