플렉스를 사용하여 아이콘으로 아이콘으로 이미지를 동적으로 틸 릴리스트로로드하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/539458

문제

좋아, 그래서 내가 만든 사용자 정의 렌더가 있습니다.

<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
  horizontalAlign="center"
  verticalAlign="middle"
  width="100"
  height="100">
  <mx:Script>
    <![CDATA[
      [Bindable]
      private var fileLabel:String;

      [Bindable]
      private var fileIcon:Class;

      override public function set data(value:Object):void{
        fileLabel = value.label;
        fileIcon = value.file.url;
      }
    ]]>
  </mx:Script>
  <mx:Image source="{fileIcon}" />
  <mx:Label text="{fileLabel}" />
</mx:VBox>

틸리리스트에 드래그하고 떨어진 이미지가있는 사진 갤러리에 사용하고 싶습니다. 나는 그 부분이 내려졌지만 아이콘이 작동하는 것을 얻을 수없는 것 같습니다.

주어진 : 값은 파일 클래스의 일종의 래퍼입니다. MX : Image Source를 유형 클래스에 필요한 것으로 설정하고 싶습니다. NativePath 또는 URL을 사용하면 캐스트 오류가 발생합니다. XML을 사용하여 온라인으로 많은 예제와 "embed (/url/to/img.jpg)"와 같은 것을 볼 수 있습니다. 나는 당신이 나에게 그 예 중 하나를 제시한다면 (정적 이미지 사용) 당신에게 부정적인 투표를 할 것이라고 약속합니다. 그것은 내가 여기서 찾고있는 것이 아닙니다!

도움이 되었습니까?

해결책

이것이 작동하지 않는 이유는 fileIcon 속성은 Class. 당신은 일반적으로 유형의 객체 만 원할 것입니다. Class 공장처럼 사용할 계획이라면 해당 클래스의 인스턴스를 만듭니다. 당신이 사용할 때 [Embed] 메타 데이터, 당신은 컴파일러에 지정된 자산을 SWF에 포함시키고 또한 Class 해당 자산을 나타낼 수있는 객체 인스턴스를 평가하기위한 공장 역할을합니다. 그러나이 질문을 게시하기 전에 이미 발견했듯이 문제는 [Embed] 참조를 하드 코딩해야한다는 것입니다. 런타임에 값을 공급할 수는 없습니다 (컴파일러는 문자 그대로 자산을 컴파일 타임에 포함시켜야하기 때문에).

다행스럽게도, mx:Image.source 문자열을 받아들이는 매우 유연한 속성입니다 (대부분의 문서가 자산과 함께 사용한다는 사실에도 불구하고). Flex 애플리케이션이 자산을로드 할 수있는 한 String-Typed URL을 source.

유형을 변경하십시오 fileIcon 문자열에, 또한 그것을 확인하십시오 value.file.url 실제로 응용 프로그램이로드 할 수있는 이미지의 URL입니다. (이 URL을 하드 코딩하여 이것을 테스트 할 수 있습니다. mx:Image'에스 source 기인하다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top