Apache flex actionscript addChild是否首先需要显示对象
解决方案: 如果您有同样的问题,addElement()而不是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
我正试图从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)这是因为Flex4极大地改变了基于MXML的应用程序中显示层次结构的工作方式。这有点令人困惑,因为addChild()不再像您希望的那样简单-您必须向数据提供程序添加元素,然后在其他地方处理显示这些元素的逻辑(在哪里添加哪些元素、如何对其进行蒙皮等)。不过,这是一种有用的改变,因为它迫使你以一种非常具体的方式分离你的关注点。将所有元素添加到数据提供程序后,您可以随意(甚至在运行时)交换布局对象,以更改应用程序的外观
编辑:从技术上讲,他们改变的不是显示列表本身。事实上,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()。