2012-12-02 4 views
0

메신저가 Flex 어플리케이션에서 작동 중이며 버튼 아이콘 소스를 동적으로 업데이트해야하지만, 런타임시 아이콘 속성을 다른 클래스 변수로 변경하면 충분하지 않습니다. 다른 클래스 소스. 나는 의심 스럽지만 대답은 아직 없다.소스 소스 클래스를 동적으로 변경하십시오.

나는 다음과 같이합니다 : http://www.java2s.com/Code/Flex/Graphics/ChangeImagesourceinbuttonaction.htm

을하지만 난 그것을 대신이 같은 somethig에 작업을 수행해야합니다

[Embed(source="sun.jpg")] 
[Bindable] 
private var dayAsset:Class; 

private function init():void { 
    dayImage.source = dayAsset; 
} 

private function showMoon():void { 
    dayAsset.source = "moon.jpg"; 
} 

private function showSun():void { 
    dayAsset.source = "sun.jpg"; 
} 

내가 성공하지 않고 이전의 코드를 시도했습니다.

"dayImage"이미지 소스를이 방법으로 업데이트해야하는 이유는 무엇입니까 ?? 두 개 이상의 위치에서 참조 된 이미지가 있고 트리거 된 이벤트에서 모두 업데이트해야합니다.

모든 해결책 : P 또는 의견을 크게 높이세요.

감사합니다. 좋은 밤을.

+0

내가 다음과 같은 아니에요 :

당신은 대부분이 같은 접근 방식을하고 싶어. dayImage.source를 업데이트하려는 경우 왜 'dayImage.source = newValue'를 수행 할 수 없습니까? 너가 enbed을 바꿀 것을 요구하면, 너는 할 수 있지 않는다. Embed는 컴파일 시간에 수행되며 컴파일 할 때 변경할 수 없습니다. – JeffryHouser

+0

그래, 내가 임베드를 변경할 수 없다는 것을 알지는 못했지만 임베디드를 참조하는 이미지가 두 개 이상 있다는 것을 알았 기 때문에 'dayImage.source = newValue'와 같은 것을 시도해 본 결과, 그 모든 이미지를 위해 그것을 할 것을 강요하게 될 것입니다. –

답변

0

나는이 질문을 이해한다. 그 대답은 런타임에 임베드를 변경할 수 없다는 것입니다. 컴파일시에 수행됩니다. 컴파일 된 SWF의 일부로 만들어졌습니다.

// embed both images 
[Embed(source="sun.jpg")] 
[Bindable] 
private var dayAssetSun:Class; 

[Embed(source="moon.jpg")] 
[Bindable] 
private var dayAssetMoon:Class; 

// us a variable to store the reference to the image you want to see 
private var currentDayAsset :Class; 

// set the current asset 
private function init():void { 
    dayImage.source = currentDayAsset; 
} 

// these methods change the currentDayAsset variable; but do not affect the embeds 
private function showMoon():void { 
    currentDayAsset = dayAssetMoon; 
} 

private function showSun():void { 
    currentDayAsset = dayAssetSun; 
} 
+0

좋아, 그 기능은 내가 원하는데, 나는 임베디드가 런타임에 할당 될 수 없다는 것을 알지 못했습니다. 정말 고마워. –

+0

나는 대답에 대해 논평해야하는데, 그것은 bindable 태그가 "dayAssetMoon"변수에 대신 적용되어야한다는 점을 제외하면 모두 옳다. 이는 "currentDayAsset"이 모든 이미지에서 소스로 참조 될 변수이므로 바인딩 할 수 있어야합니다. –

+1

@HugoAllexisCardona currentDayAsset을 Bindable해야하는지 여부는 실제로 사용하는 방법에 따라 달라집니다. 귀하의 질문 (또는 내 대답)에서 다루지 않는 내용입니다. 하지만 MXML에서 이미지 태그와 같은 소스로 사용하는 경우 그렇다면 'currentDayAsset'을 바인딩 가능하게 만들어야합니다. – JeffryHouser

관련 문제