четверг, 30 сентября 2010 г.

Flex4 SkinnableComponent [Updated]

Много кода я писать тут не буду. Напишу только что, вот так просто взять и воспользоваться стэйтами скина наследнику от SkinnableComponent не удастся :)

Вот такой workaround должен помочь в решении вопроса: "Ээ .. а как тут переключать состояние?":
  1. [SkinState("normal")]
  2. [SkinState("disabled")]
  3. [SkinState("selected")]
  4. [SkinState("hilighted")]
  5. public class MyButton extends SkinnableComponent
  6. {
  7.     private var _currentState:String;
  8.     
  9.     override public function set currentState(value:String):void
  10.     {
  11.         _currentState = value;
  12.     }
  13.     [Bindable]
  14.     override public function get currentState():String
  15.     {
  16.         return _currentState;
  17.     }
  18.     
  19.     override protected function commitProperties():void
  20.     {
  21.         states = skin.states;
  22.         BindingUtils.bindProperty(skin,'currentState', this,'currentState');
  23.         super.commitProperties();
  24.     }
  25.     
  26.     override protected function getCurrentSkinState():String
  27.     {
  28.         return skin.currentState;
  29.     }
  30. }
* This source code was highlighted with Source Code Highlighter.

После этого можно смело писать что-то типо:
  1. var mb:MyButton= new MyButton();
  2. mb.currentState = 'hilighted';
  3. addElement(mb);
* This source code was highlighted with Source Code Highlighter.

Комментариев нет:

Отправить комментарий