1

わかりましたので、作成したカスタム レンダリングがあります。

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

TileList にドラッグ アンド ドロップされる画像を含むフォト ギャラリーに使用したいと考えています。その部分はダウンしていますが、アイコンを機能させることができないようです。

与えられた: 値は、File クラスの一種のラッパーです。mx:Image ソースをクラス型である必要があるものに設定したいと考えています。nativePath または url を使用すると、キャスト エラーが発生します。XML や「Embed(/url/to/img.jpg)」のようなものを使用した例をオンラインでたくさん見ます。これらの例の 1 つ (静止画像を使用) を教えていただければ、反対票を投じることをお約束します。それは私がここで探しているものではありません!

4

1 に答える 1

6

これが機能しない理由は、fileIconプロパティのタイプがClass. Classファクトリのように使用し、そのクラスのインスタンスを作成する場合は、通常、タイプのオブジェクトのみが必要です。メタデータを使用すると、指定されたアセットを SWF に埋め込む必要があること、およびそのアセットを表すことができるオブジェクト インスタンスを販売するためのファクトリとして機能する を[Embed]生成することをコンパイラに指示することになります。Classただし、この質問を投稿する前にすでに発見していたように、問題[Embed]は参照をハードコードする必要があることです。実行時に値を指定できないためです (コンパイラはコンパイル時にアセットを文字通り埋め込む必要があるため) -時間)。

幸いなことに、mx:Image.sourceは非常に柔軟なプロパティであり、文字列も受け入れます (ほとんどのドキュメントでは、埋め込みアセットでの使用が示されていますが)。Flex アプリケーションがアセットをロードできる限り、String 型の URL をsource.

のタイプをfileIcon文字列に変更し、それvalue.file.urlが実際にアプリケーションが読み込める画像の URL であることも確認します。(この URL をmx:Imagesource属性にハードコーディングするだけで、これをテストできます。)

于 2009-02-12T03:17:21.237 に答える