Apache flex actionscript addChild是否首先需要显示对象

Apache flex actionscript addChild是否首先需要显示对象,apache-flex,actionscript,adobe,mxml,flex4,Apache Flex,Actionscript,Adobe,Mxml,Flex4,解决方案: 如果您有同样的问题,addElement()而不是addChild() 我正试图从mxml转移到actionsctipt。我有一个,我已经创建并设置了它的属性,但是在添加它时遇到了问题 var aRect:Rect = new Rect(); //set properties like aRect.x, aRect.y, aRect.width, aRect.height //tried adding it various ways addChild(aRect); Applic

解决方案:

如果您有同样的问题,addElement()而不是addChild()


我正试图从mxml转移到actionsctipt。我有一个
,我已经创建并设置了它的属性,但是在添加它时遇到了问题

var aRect:Rect = new Rect();
//set properties like aRect.x, aRect.y, aRect.width, aRect.height

//tried adding it various ways
addChild(aRect);
Application.addChild(aRect);
Application.application.addChild(aRect);
stage.addChild(aRect);
但我一直在犯错误 1067:spark类型值的隐式强制。基本体:Rect到不相关的flash类型。显示:DisplayObject

最初在mxml中,它就在
中,没有嵌套在任何东西中

<s:Application>

    <s:Rect id="aRect" x="10" y="10" width="15%" height="15%">
         //then fill code here, removed for readability
    </s:Rect>

</s:Application>

//然后在此处填充代码,为便于阅读而删除

怎么回事,我想actionscript会比mxml更好。

是的,你需要一个DisplayObject。我不熟悉spark.primitives.Rect,但也许您可以创建一个新的Sprite并调用其图形对象上的方法来绘制矩形?

根据live docs,应用程序类的addChild方法确实要求它是一个displayObject。

尝试更改
addChild(aRect)至<代码>附录(aRect)

编辑:从技术上讲,他们改变的不是显示列表本身。事实上,Flex现在使用的基本单元是“组”——甚至是s:Application Extendes组。将内容添加到组(或顶级应用程序),然后为组分配布局,告诉组如何显示已添加的项目

令人烦恼的是,我们常常难以使用addElement添加flash资产(swf swc)(显示对象)

我现在正在研究一种方法来做到这一点:(更多的篮球和跳跃


另外,我的swc在package explorer中不可见(为什么不?

以前从未使用过Flex 4,但我对此很好奇。希望您能得到答案。您的代码示例是来自document类还是其他任何类?@JanD,代码就在主mxml应用程序中(我只有一个mxml,没有组件或任何东西),当然,actionscript代码在脚本标记的init()函数中,并在creationComplete时触发,这与通常的情况差不多。除了我现在尝试使用actionscript创建这些视觉元素。Myk您是否有兴趣就此发表一篇博文,并可能将其添加到您的答案中。关于“将所有元素添加到数据提供程序后,您可以随意(甚至在运行时)交换布局对象,以更改应用程序的外观。"特别有趣,代码可能比文字更容易理解。谢谢。哈,我想应该有人写出来-我知道O'Reilly press的Flex 4烹饪书在解释它方面做得非常好。这本书应该很快就会出版。与此同时,我会四处寻找一本好的书,我肯定有什么东西出版了这里-如果我找到了,我会发布在这里。这里有一个视频教程解释它-基本上,大多数Flex 4视图(包括s:Application)都有一个布局属性。它决定了对象的显示方式,除了四个基本布局之外,您还可以创建自己的自定义布局。视频解释得非常好!视频不再可用:(有没有一种简单的方法可以通过编程将Rect添加到UIComponent?UIComponents没有addElement()。