2012-05-01 11 views
0

私はFlexとActionScriptの新機能ですが、Flexのページ上の要素をクエリ文字列に置き換える作業があります。つまり、ユーザーは?image = dog.pngなどのパラメータを渡すことができ、ActionScriptはイメージをユーザーが渡したイメージで置き換えます。ページ全体が.mxmlファイルにレイアウトされます。プレースホルダ画像(透過的です)は、ユーザが指定したものに置き換える必要があります。それらが渡すイメージは、常にSWFファイルに存在します。要素内の画像を置換する

私はいくつかのことを試しましたが、うまくいきませんでした。例えば、I)は画像のソースを変更しようとした:

view.BlankImage.source = "@Embed(source='/resources/myNewImage.png')"; 

また、私は、実行時にそれが見えるようにしたと仮定すると、最初に隠されている画像を挿入しようとしました。しかし、Flexはページフォーマットで隠し画像を含んでいるので、たとえ隠し画像を表示しなくても、すべての配置がうんざりしてしまいます。

<s:VGroup width="100%" bottom="0" horizontalAlign="right"> 
<mx:Image id="BlankSpot" source="@Embed(source='/resources/blank.medium.png')" 
    visible="{!someParameter}" includeInLayout="{BlankSpot.visible}"/> 
    <toolbars:SearchBox id="searchBox"/> 
</s:VGroup> 

私は、実行時に画像を置き換えることができますどのように任意のアイデア:ここ

は、関連MXMLはありますか?私はより多くの情報を提供する必要がありますか?

ありがとうございます!

答えて

2

もう少し情報が役立ちます。私はイメージがウェブから来ていると仮定しているし、アプリケーションにすべて埋め込まれているわけではありません。

この場合、画像を新しい.pngに渡すことができます。

は、すべての画像がアプリケーションに埋め込まれて述べられているので、あなたが相対パスを使用してWebのURLを置き換えることができます

編集BlankSpot.source = "http://someurl.com/image.png

を試してみてください。

たぶん、このような何か:あなたは、画像のセット数を持っている場合は

var img:String = "dog.png"; 
BlankSpot.source = "/resources/" + img; 

あなたも定義することができ、事前にそれらを埋め込みます。これを処理する良い方法は、すべての埋め込みアセットを保持するResourcesクラスを作成することです。

package { 
    public final class Resources { 
     [Embed (source="/resources/dog.png")] public static const DOG:Class; 
     } 
} 

あなたは、あなたはとてもあなたにも画像を喚起するために切り替える必要があるため、<s:VGroup>へのFlex 4を使用しているようにもそれが見えますあなたのイメージのソース

BlankSpot.source = Resources.DOG; 

でこれを直接使用することができます。

ここMXイメージを使用するための具体的な理由がない場合は

<s:Image id="BlankSpot" source="@Embed(source='/resources/blank.medium.png')" 
visible="{!someParameter}" includeInLayout="{BlankSpot.visible}"/> 
+0

とそのブロックを置き換える相対URL – francis

+0

で画像を更新@FrecklefootはSWFに含まれます。ユーザーが実際に渡すのは「Image1」や「Image2」などのIDで、指定するものは表示される画像です。指定した画像と無効な画像の場合は、無視します。 なぜが使用されているのか分かりませんが、検索ボックスと関連があると思います。検索ボックスと画像を並べて配置する必要があります。 上記のように新しい画像を指定すると、私はすでに試していましたが、何もしません。 : Frecklefoot

+0

@Frecklefoot Sparkコンポーネントを使用しているので、 – francis

関連する問題