1

そのため、FlashDevelopとflexを使用していますが、ソースを正しく機能させることができません。画像を埋め込むときはいつでも問題なく機能しますが、source = "../ img / Koala.jpg"に移動すると、埋め込み作業に使用したのと同じパスが機能しません。Flash Builderでは、source = "/ img / Koala.jpg"を実行するだけで、問題なく動作します。パス「D:\ flashDevelop \ FlexMobileProject \ src \ img \ Koala.jpg」を入力すると、これは正常に機能します。誰かが私がここで欠けているものを説明できますか?

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    title="HomeView" creationComplete="init()">

<fx:Script>
    <![CDATA[

        [Embed(source = "../img/Koala.jpg")]
        [Bindable] public var img:Class;


        public function init():void {
            var s:String = new String();
            label.text = String(imgstage.sourceHeight);

            trace(imgstage.source);
        }

    ]]>
</fx:Script>

<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>

<!-- can't find the image even if that path is the same as the embed -->
<s:Image id="imgstage" source="../img/Koala.jpg" y="0" x="0"/>
<s:Label id="label" text="name"></s:Label>
</s:View>
4

3 に答える 3

0

イメージに「ソース」を指定すると、ファイルは実行時にロードされます。ただし、FlashDevelopはファイルをsrc/からbin/にコピーしません。実行時にロードする要素をbin/ディレクトリに手動で入力する必要があります。実行時のパスは、HTMLページに関連して解決されます。

埋め込みはコンパイル時に解決されます。FlashDevelopを使用する場合、パスは常にプロジェクトルートではなく、class/mxmlファイルに対して解決されることに注意してください。パスが「/」で始まる場合は、クラスパスのルートを基準にしています。

PS:これらの制限は実際にはFlexSDKにあります。

于 2012-11-09T13:31:38.070 に答える
0

正しく覚えていれば、source = "../ img / Koala.jpg"は実行時に処理され、embedディレクティブはコンパイル時に処理されます。したがって、作業ディレクトリが異なり、source=""が失敗します。

次の作業を行います:

<s:Image id="imgstage" source="img/Koala.jpg" y="0" x="0"/>

imgフォルダがswfファイルの隣にあると仮定すると、それは機能するはずです。

于 2012-11-08T23:17:56.417 に答える
0

FlashDevelop では、SWF の外部に保持したいファイルはすべて bin フォルダーに配置する必要があります。

于 2012-11-09T10:04:50.777 に答える