Без какого-либо кода (пожалуйста, включите образец обоих компонентов, если можете), есть несколько способов, которыми вы можете подойти к этому.
Вы можете добавить ChangeWatcher
, который связан срассматриваемая переменная и вызывает метод при изменении свойства.Этот метод может изменить изображение в зависимости от условий, применимых к свойству.
Это будет выглядеть что-то примерно так:
Component 1:
[Bindable]
public var yourVariable:Number;
Component 2:
private var propertyWatcher:ChangeWatcher;
//In some initialization method -- this is JUST an example method for how to create the property watcher
public function init(): void {
...
propertyWatcher = ChangeWatcher.watch(component1, "yourVariable", onVariableUpdate);
}
//Define this as a new method to handle when the property changes
private function onVariableUpdate(event:PropertyChangeEvent):void {
if(event.newValue == 50) {
yourImage.source = newSource;
}
else if(event.newValue == 100) {
yourImage.source = otherSource;
}
}
Очевидно, это очень усеченный и сокращенный, но, надеюсь, это поможет вам начать.
Редактировать : ChangeWatchers действительно существуют во Flex 3, но, похоже, вам следует войти вдругое направление.Поскольку фрагмент кода, который вы разместили, немного мал, я собираюсь сделать несколько предположений о том, как вы могли бы сделать это:)
Как уже упоминалось в своем комментарии alxx, вы можете изменить свойство accountState
вВаш компонент от фактического свойства, до установщика / получателя.Это позволит вам выполнять более обширную обработку при обновлении accountState.
Это должно выглядеть что-то примерно так:
MyComp:
//Inside your script tag:
private var _accountState:Number;
[Bindable]
public function get accountState():Number {
return _accountState;
}
public function set accountState(state:Number):void {
_accountState = state;
switch(state) {
case 50:
yourIcon.source = "blahblahblah";
break;
case 100:
yourIcon.source = "blahblahblah2";
break;
//And so on
}
}
Это не изменит код, который вы опубликовали: он все равно должен работать так, как вы его написали.Я не проверял это, так что, возможно, я что-то упустил, но, надеюсь, это поможет:)