2012-02-25 6 views
2

다음은 현재 상황입니다.정적으로 포함 된 이미지를 동적으로 선택 하시겠습니까?

이미지가 클래스에 포함되어 있습니다.

package system 
{ 
    public class Embedded 
    { 
     [Embed(source="assets/srcorangeboxidle.png")] 
     public static const btnSrcOrangeBoxIdle:Class; 

     [Embed(source="assets/srcorangeboxpressed.png")] 
     public static const btnSrcOrangeBoxPressed:Class; 

     [Embed(source="assets/hl1idle.png")] 
     public static const btnHL1Idle:Class; 

     [Embed(source="assets/hl1pressed.png")] 
     public static const btnHL1Pressed:Class; 

     public function Embedded(){} 
    } 
} 

이제 주 MXML 파일에 다음과 같은 내용이 있습니다.

<?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"> 

    <fx:Script> 
     <![CDATA[ 
      import system.Embedded; 

      protected function toggleButtonState(target:Object,pressed:Boolean=false):void 
      { 
       var baseImageName:String = target.id.toString(); 
       if (!pressed) { 
        target.source = Embedded.[baseImageName+"Idle"]; 
       } else { 
        target.source = Embedded.[baseImageName+"Pressed"]; 
       } 
      } 
     ]]> 
    </fx:Script> 
    <s:Image id="btnSrcOrangeBox" x="107" y="245" source="{Embedded.btnSrcOrangeBoxIdle}" mouseDown="toggleButtonState(btnSrcOrangeBox,true)" mouseUp="toggleButtonState(btnSrcOrangeBox,false)"/> 
    <s:Image id="btnHL1" x="107" y="355" source="{Embedded.btnHL1Idle}" mouseDown="toggleButtonState(btnHL1,true)" mouseUp="toggleButtonState(btnHL1,false)"/> 
</s:Application> 

위의 코드는 트릭을 수행하지 않는 것 같습니다. 난 단지 임베디드. * 클래스를 동적으로 선택하고 싶습니다. 어떤 도움이나 힌트도 크게 감사하겠습니다.

답변

3

클래스 이름 뒤에 점을 제거하십시오. 다음 작동해야합니다 :

target.source = Embedded[baseImageName + "Idle"]; 
+0

굉장! 내가 필요한 것! 너무 많은 것을 요구하지 않는다면, 이것을 설명하는 문서 페이지를 게시 할 수 있습니까? 나는 이런 종류의 일을 찾기 위해 어떤 키워드를 찾지 못하고있다. :) – Propeller

+0

Flex 설명서에서이 부분을 찾을 수 있을지 확신하지 못했습니다 ... –

+0

하지만 어떻게 수행 했습니까? – Propeller

관련 문제