0

次のコードを見てください。

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" 
               xmlns:view="client.view.*" minWidth="955" minHeight="600">
    <s:Panel x="10" y="10" height="100%" title="CTW" borderColor="#008040" fontFamily="Arial" fontWeight="bold" fontSize="13">
        <s:HGroup>
            ...
            <s:Scroller id="canvasGroup" width="650" height="500">
                <s:Group>
                    <s:SpriteVisualElement>
                        <view:PNGCanvas id="canvas" />  <!-- error is thrown here -->
                    </s:SpriteVisualElement>
                </s:Group>
            </s:Scroller>
        </s:HGroup>
    </s:Panel>  
</s:Application>

PNGCanvas拡張しflash.display.Spriteます。エラーが発生しますcomponent declarations are not allowed here(でマークされた行でerror is thrown here)。ここで何が問題になっていますか?

前もって感謝します!!!

4

3 に答える 3

2

コードは次のようになります...

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"  
               xmlns:s="library://ns.adobe.com/flex/spark"  
               xmlns:mx="library://ns.adobe.com/flex/mx"  
               minWidth="955" minHeight="600" xmlns:view="view.*"> 
    <s:Panel x="10" y="10" height="100%" title="CTW" borderColor="#008040" fontFamily="Arial" fontWeight="bold" fontSize="13"> 
        <s:HGroup>
            <s:Scroller id="canvasGroup" width="650" height="500"> 
                <s:Group> 
                    <view:PNGCanvas width="100" height="100"/> 
                </s:Group> 
            </s:Scroller> 
        </s:HGroup> 
    </s:Panel>   
</s:Application>

およびPNGCanvasクラスはSpriteVisualElementによって拡張する必要があります

package view
{   
    import spark.core.SpriteVisualElement;

    public class PNGCanvas extends SpriteVisualElement
    {
        public function PNGCanvas()
        {
            super();
        }
    }
}

このコードを確認してください...

于 2012-04-19T12:50:15.337 に答える
0

SpriteVisualelementはコンテナーではないため、(MXMLで)子を持つことはできないと確信しています。

PNGCanvasを変更してCanvasを拡張できます。次に、SpriteVisualElementの代わりにそれを使用します。

さらに、ActionScriptを使用して、PNGCanvasインスタンスを子としてSpriteVisualElementに追加できます。しかし、それは少し複雑です。

于 2012-04-19T12:42:10.343 に答える
0

これが原因でコードが機能しない可能性があります...

SpriteVisualElementクラスは、IVisualElementインターフェイスの軽量のSpriteベースの実装です。Sparkコンテナは、SpriteVisualElementオブジェクトをレイアウトおよびレンダリングできます。ActionScriptを使用してFXGコンポーネントをアプリケーションに追加する場合は、SpriteVisualElementタイプである必要があります。

于 2012-04-19T12:53:23.107 に答える