加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex – actionscript addChild首先需要一个显示对象

发布时间:2020-12-15 02:11:15 所属栏目:百科 来源:网络整理
导读:解: 如果你有同样的问题,addElement()而不是addChild()就是这样做的 我正试图从mxml转移到actionsctipt.我有一个 s:Rect我已创建并设置其属性,但无法添加它. var aRect:Rect = new Rect();//set properties like aRect.x,aRect.y,aRect.width,aRect.height
解:

如果你有同样的问题,addElement()而不是addChild()就是这样做的

我正试图从mxml转移到actionsctipt.我有一个< s:Rect>我已创建并设置其属性,但无法添加它.

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.primitives的值的隐式强制:Rect到不相关的类型flash.display:DisplayObject

最初在mxml中,它位于< s:Application>内部.没有嵌套在任何东西里面

<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更好.

解决方法

这是因为Flex 4显着改变了显示层次结构在基于MXML的应用程序中的工作方式.这有点令人困惑,因为addChild()不再像你想要的那样工作 – 你必须向数据提供者添加元素,然后显示那些元素的逻辑(哪些元素添加到哪里,如何为它们设置外观等)在其他地方处理.然而,这是一种有用的改变,因为它迫使你以一种非常具体的方式分离你的关注点.将所有元素添加到dataProvider后,您可以随意更换Layout对象(即使在运行时),以更改应用程序的外观.

编辑:从技术上讲,他们改变了不是displayList本身.事实上,Flex使用的基本单元现在是“组” – 甚至是:应用程序扩展组.您将内容添加到组(或顶级应用程序),然后为组分配布局以告诉它如何显示您添加的项目.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读