내가 가지고있는 정적 속성을 가진 클래스가 이미지로 사용됩니다. 런타임에 이미지를 구성 할 수 있지만 기본값은 그대로 유지하고 싶습니다. 정적이 변경됩니다 버튼을 클릭Actionscript의 데이터 바인딩
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955"
minHeight="600"
xmlns:ns1="*">
<fx:Script>
<![CDATA[
[Embed(source="/assets/Yellow-Light.gif")]
[Bindable]
public var YellowLight:Class;
]]>
</fx:Script>
<mx:Image source="{Images.GreenLight}"/>
<s:Button x="10"
y="40"
label="Button"
click="Images.GreenLight=YellowLight"/>
<ns1:MyComp x="40" y="0"/>
</s:Application>
: 내가이 같은 응용 프로그램을 만드는 경우 이제
package {
import mx.binding.utils.BindingUtils;
import mx.controls.Image;
import spark.components.HGroup;
public class MyComp extends HGroup {
private var _image:Image;
public function MyComp() {
_image = new Image();
_image.source = Images.GreenLight;
addElement(_image);
BindingUtils.bindSetter(setImageIcon, Images, "GreenLight");
}
private function setImageIcon(newIcon:Class):void {
trace(newIcon);
_image.source = newIcon;
}
}
}
: 지금
package {
public class Images {
[Embed(source="/assets/Green-Light.gif")]
[Bindable]
public static var GreenLight:Class;
}
}
그리고 사용자 정의 구성 요소를 : 그래서 이미지 클래스처럼 보인다 속성을 Images 클래스에 추가합니다. MXML로 정의되고있는 이미지는 바인딩 이벤트를 취득 해 이미지를 갱신 합니다만, ActionSctipt로 작성된 커스텀 컴퍼넌트는 갱신되지 않습니다.
내 질문은 왜입니까? 어떻게 수정해야합니까?
감사합니다.
그건 내가 생각했던 것인데, 왜 MXML에서 작동할까요? – Ryan
답변을 편집했습니다. 질문에 감사드립니다. –
내가 정적으로하고 싶었던 이유는 런타임에 이미지가 변경 될 수 있고 변경 사항이 애플리케이션의 모든 부분에 반영 될 수 있기 때문입니다. 그래서 솔루션은 그것을 싱글 톤으로 만드는 것입니다. – Ryan