flex-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Maurice Amsellem <maurice.amsel...@systar.com>
Subject RE: RE:Can I Bind a SolidColor Fill Value?
Date Mon, 27 Jan 2014 18:38:09 GMT
Do you have a compiler warning such as "Cannot bind to ButtonColor" because presenter is not
EventDispatcher ?

That could be the reason. 

Other than that, the code seems good.

Also, did you try having only the ButtonColor prop [Bindable], not the whole class?

Maurice 

-----Message d'origine-----
De : Tintin [mailto:1955.mille.miglia@googlemail.com] 
Envoyé : lundi 27 janvier 2014 08:59
À : users@flex.apache.org
Objet : Re: RE:Can I Bind a SolidColor Fill Value?

Hi Martin

Let's have another go at displaying the code:
I have declared my presenter Class as [Bindable]. In my presenter I have a property as follows:


internal var _ButtonColour:uint = 0x000000; 

    public function get ButtonColour():uint { 
        return _ButtonColour; 
    } 

    public function set ButtonColour(value:uint):void { 
        _ButtonColour = value; 
    } 


I have a Switch statement to change the value depending on the value of another property which
may change: 

    private function setButtonColour():void 
    { 
        trace("setButtonColour called. ButtonColour = " + String(ButtonColour)); 
        switch(LessonType) 
        { 
            case "purpose": 
                ButtonColour = 0x24c07f; 
                break; 
            case "components": 
                ButtonColour = 0x53c7c7; 
                break; 
            case "locate": 
                ButtonColour = 0x88b9ff; 
                break; 
            case "process": 
                ButtonColour = 0xab8ff2; 
                break; 
            case "safetycase": 
                ButtonColour = 0xe380fe; 
                break; 
            case "interlocks": 
                ButtonColour = 0xf187c5; 
                break; 
            case "safetyfeatures": 
                ButtonColour = 0xfe6856; 
                break; 
            case "interrelation": 
                ButtonColour = 0xff8233; 
                break; 
            case "opex": 
                ButtonColour = 0xf99c38; 
                break; 
            case "other": 
                ButtonColour = 0xf5d846; 
                break; 
            default: 
                ButtonColour = 0x7ab73e; 
                break; 
            } 
        trace("ButtonColour set to " + String(ButtonColour)); 
        } 


In my mxml file I have defined a Rectangle as follows: 

<s:Graphic 
        xmlns:fx="http://ns.adobe.com/mxml/2009"
        xmlns:s="library://ns.adobe.com/flex/spark" 
        xmlns:presenters="presenters.*">

    <fx:Declarations>
        
        <presenters:SliderView_Presenter id="presenter" />
    </fx:Declarations>

    <s:Rect 
            id="BtnColour" 
            width="24" height="24" 
            radiusX="12" radiusY="12">

        <s:fill>
            <s:SolidColor color="{presenter.ButtonColour}" />
        </s:fill>

    </s:Rect>

</s:Graphic>

To recap, my presenter class has the [Bindable] meta tag above the Class definition. My view
includes an HSlider which sets the skinClass = SliderSkin. The SliderSkin skin class defines
the Thumb button and sets its skinClass to SliderThumbSkin.

In my SliderThumbSkin I want to bind the colour of an element in the button definition (a
Rect with a Fill of solidColour) to a value in my presenter class.

The presenter class would be instantiated by the hostComponent, the HSlider, so I'm wondering
if I should access the property through this. Currently my colour property in the presenter
is set its initial value and the button is set to this colour, when the colour value changes
though the button does not get notified and does not change.

Does that help?

Chris



--
View this message in context: http://apache-flex-users.2333346.n4.nabble.com/Can-I-Bind-a-SolidColor-Fill-Value-tp4615p4633.html
Sent from the Apache Flex Users mailing list archive at Nabble.com.

Mime
View raw message