2009-04-20 3 views
2

Flex에서 리소스 번들의 아이콘을 가져 오는 데 문제가 있습니다. 여기에 시나리오는 다음과 같습니다 내가 가진 icons.properties에서Flex의 리소스 번들에서 아이콘을 가져 오는 중 문제가 발생했습니다.

-ResourceManagerTest 
    -resources 
    -icons 
     -icon1.png 
     -icon2.png 
     -icons.properties 
-src 
    -MyButton.as 
    -ResourceManagerTest.mxml 

:

디렉토리 구조는 다음과 같습니다

CIRCLE_FILLED=Embed("icon1.png") 
CIRCLE_CONTOUR=Embed("icon2.png") 

내가 누구의 아이콘로부터 인출되는 버튼 ToggleButtonBar와를 만들고 싶습니다 자원 번들.

<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" 
layout="absolute" 
creationComplete="onCreationComplete()"> 

<mx:Script> 
    <![CDATA[ 
     [Bindable] 
     public var dataProvider:Array; 

     public function onCreationComplete():void { 

      dataProvider = new Array(); 
      dataProvider.push(new MyButton()); 
      dataProvider.push(new MyButton()); 
      tgb.dataProvider = dataProvider; 
     } 

    ]]> 
</mx:Script> 


<mx:ToggleButtonBar id="tgb"/> 

버튼이 나타나지 않는 그러나 어떤 아이콘 않고 : 나는 ToggleButtonBar와 정의 곳 ResourceManagerTest가 여기

package 
{ 
    import mx.resources.ResourceManager; 

    public class MyButton extends Object 
    { 
    public var icon:Class; 
    public function MyButton() 
    { 
     super(); 
     icon = ResourceManager.getInstance().getClass("icons", "CIRCLE_FILLED"); 
    } 

} 

}

그리고 :

여기에 프로그램 생성 버튼의 소스입니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

1

먼저 빌드에 리소스 번들을 포함하지 않는 것 같습니다. 작업을 완료하면 당신은 아마 당신이 번들되어 있는지 확인 그 MXML에서

<mx:Metadata> 
     [ResourceBundle("RegistrationForm")] 
</mx:Metadata> 

같은 뭔가가 필요하거나 클래스

의 상단에 바로

[ResourceBundle("RegistrationForm")] 

거야 ... 그냥 문자열 리소스를 추가하고 당신이 그것을 얻을 수 있는지보십시오. 번들이 있어도 여전히 작동하지 않으면 아이콘이 다른 경로로 재생됩니다. 그것들은 리소스와 관련이 없을 수도 있습니다 (그걸 가지고 놀면서 나는 무엇이 상대적인 것인지 결코 기억할 수 없습니다).

+0

답변을 좋아한다면 upvote해야하며 문제가 해결되면 올바른 것으로 표시해야합니다. –

+0

경로는 특성 파일과 관련되어야합니다. – Janosch

1

Flex 3에서 ResourceBundle을 설정하는 방법에 대한 정보는 Adobe의 livedocs에서 "Using Resources"입니다.

[ResourceBundle("icons")] 

리소스 번들을 포함하는 것 외에도 컴파일 할 때 리소스 경로를 포함시켜야합니다. 자세한 내용은 Adobe의 문서를 참조하십시오.