首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flex中的显示列表架构

Flex中的显示列表架构
EN

Stack Overflow用户
提问于 2012-03-07 15:28:47
回答 2查看 675关注 0票数 1

在一次面试中,我被问及Flex中的显示列表架构。后来我对它进行了搜索,但没有用。任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-07 15:36:06

显示列表就像一棵树。想象一下Stage对象作为树的基础。想象一下添加到舞台上的MovieClips和Sprite,它们是从树上掉下来的树枝和树叶。显示列表也是AVM2中事件系统的核心。附加到DisplayList的对象(即它们本身或它们的父对象、父对象父对象等最终连接到舞台)可以通过显示列表来“冒泡”事件。

无论如何,这是我简短的解释,但你可以从这些链接中获得更详细的信息:

http://www.adobe.com/devnet/flash/quickstart/display_list_programming_as3.html

http://tv.adobe.com/watch/colin-moocks-lost-actionscript-weekend/the-display-list/

票数 3
EN

Stack Overflow用户

发布于 2012-03-07 16:25:22

似乎这个问题听起来真的应该是这样的:

当您在mxml代码中编写 (或任何其他 / )时,结果显示列表的结构是什么?

所以你应该这样做:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<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" applicationComplete="onAppComplete();">

    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <fx:Script>
        <![CDATA[

        import flash.display.DisplayObject;
        import flash.display.DisplayObjectContainer;
        import mx.controls.Alert;
        import mx.core.UIComponent;
        import spark.components.SkinnableContainer;
        private function onAppComplete(e:* = null):void {
            trace(parseList(stage));
            //Alert.show(parseList(stage));
        }

        private function parseList(uic:DisplayObjectContainer, prefix:String = '>'):String{
            prefix = prefix || '>';
            var retStr:String = '';
            for (var i:int = 0; i < uic.numChildren; i++ ) {
                retStr += prefix + uic.getChildAt(i).name + '\n';
                if (uic.getChildAt(i) is DisplayObjectContainer) {
                    retStr += parseList(uic.getChildAt(i) as DisplayObjectContainer, prefix + '>');
                }
            }
            return retStr; 
        }

        ]]>
    </fx:Script>
    <s:SkinnableContainer>
        <s:Panel>
            <mx:UIComponent>

            </mx:UIComponent>
        </s:Panel>
    </s:SkinnableContainer>
</s:Application>

(或者可能更复杂),并研究输出

上面的代码输出

代码语言:javascript
复制
>root1
>>NewFile1
>>>ApplicationSkin3
>>>>Group4
>>>>>Group5
>>>>>>SkinnableContainer6
>>>>>>>SkinnableContainerSkin7
>>>>>>>>Group8
>>>>>>>>>Panel9
>>>>>>>>>>PanelSkin10
>>>>>>>>>>>RectangularDropShadow11
>>>>>>>>>>>Group12
>>>>>>>>>>>>Group13
>>>>>>>>>>>>instance36
>>>>>>>>>>>>Group14
>>>>>>>>>>>>>Group15
>>>>>>>>>>>>>>Label16
>>>>>>>>>>>>>>>instance33
>>>>>>>>>>>>>>>instance37
>>>>>>>>>>>>>Group17
>>>>>>>>>>>>>>UIComponent18
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9597370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档