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 类是 IVisualElement 接口的基于 Sprite 的轻量级实现。Spark 容器可以布局和渲染 SpriteVisualElement 对象。如果您使用 ActionScript 将 FXG 组件添加到应用程序,它应该是 SpriteVisualElement 类型。

于 2012-04-19T12:53:23.107 回答
0

我很确定 SpriteVisualelement 不能有孩子(在 MXML 中),因为它不是容器。

您可以更改 PNGCanvas 以扩展 Canvas;然后用它代替你的 SpriteVisualElement。

此外,您可以使用 ActionScript 将您的 PNGCanvas 实例作为子项添加到您的 SpriteVisualElement;但它稍微复杂一些。

于 2012-04-19T12:42:10.343 回答