首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AS3 ViewStack内容剪辑

AS3 ViewStack内容剪辑
EN

Stack Overflow用户
提问于 2012-04-18 23:43:08
回答 1查看 387关注 0票数 0

我有下一段代码(Flash Builder 4.5)

这是一个主要的应用程序文件,用于测试视图堆栈组件。

TabPanelTest

代码语言:javascript
复制
    </fx:Declarations>
    <fx:Script> 
        <![CDATA[
            import mx.events.FlexEvent;

            protected function creationCompleteHandler(event:FlexEvent):void
            {
                tp.AddPanel("111", new Button());
                tp.AddPanel("444", new TestPanel());
                tp.AddPanel("2222222", new Button());
                tp.AddPanel("3333333333", new Button());

            }

            protected function button1_clickHandler(event:MouseEvent):void
            {
                // TODO Auto-generated method stub
                tp.RemoveAllPanels();
            }

        ]]>
    </fx:Script>

    <ns1:TabPanel id="tp" x="25" y="27" width="321" height="199">
    </ns1:TabPanel>
    <s:Button x="439" y="25" label="Кнопка1" click="button1_clickHandler(event)"/>

</s:Application>

这是TabPanel,它有公共方法AddPanel和RemoveAllPanels。

TabPanel

代码语言:javascript
复制
            protected function creationCompleteHandler(event:FlexEvent):void
            {
                //buttons1.dataProvider=new ArrayCollection();
            }

            public function AddPanel(name:String, element:IVisualElement):void{
                var panel:NavigatorContent=new NavigatorContent();
                panel.label=name;
                panel.addElement(element);
                panels.addElement(panel);
            }
            public function RemoveAllPanels():void{
                //panels.swapElements(swapElementsAt(0,2);
                panels.removeAllElements();
                /*var but:Button;
                but=new Button();
                but.label=name;
                buttons.addElement(but);    */          
            }           
        ]]>
    </fx:Script>

    <mx:ViewStack id="panels" x="0" y="31" width="100%" height="100%" borderColor="#000000"
                  borderStyle="solid" borderVisible="true" clipContent="true" includeInLayout="true">
    </mx:ViewStack> 
    <s:ButtonBar id="buttons1" x="0" y="0" width="100%" dataProvider="{panels}"
                 justificationStyle="pushOutOnly"/>
</s:Group>

这是测试面板,它的大小超过了视图堆栈,它必须裁剪。TestPanel

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
         xmlns:s="library://ns.adobe.com/flex/spark"
         xmlns:mx="library://ns.adobe.com/flex/mx"
         width="100%" height="100%">
    <fx:Script>
        <![CDATA[
            import spark.components.NavigatorContent;           
            protected function button1_clickHandler(event:MouseEvent):void
            {
                // TODO Auto-generated method stub
                NavigatorContent(this.parent.parent.parent).label="bebe";
            }
        ]]>
    </fx:Script>

    <fx:Declarations>
    </fx:Declarations>
    <s:Button x="163" y="35" width="315" height="209" label="Кнопка"
              click="button1_clickHandler(event)"/>

</s:Group>

当我点击"444“在buuton栏我的内容不裁剪。有什么问题吗?

EN

回答 1

Stack Overflow用户

发布于 2012-04-19 14:17:21

问题出在下面这行TestPanel自定义组件中:

代码语言:javascript
复制
<s:Button x="163" y="35" width="315" height="209" label="Кнопка"
              click="button1_clickHandler(event)"/>

如果要将任何组件添加到父容器中:-

子组件将考虑相对于父组件的x和y位置。如果想要适配子组件,则应该使用x=0和y=0,以及宽度= 100%和高度= 100%

试试这个,看看输出结果:-

代码语言:javascript
复制
<s:Button x="163" y="35" width="100%" height="100%" label="Кнопка"
              click="button1_clickHandler(event)"/>

再试一次,看看输出结果:

代码语言:javascript
复制
<s:Button x="0" y="0" width="100%" height="100%" label="Кнопка"
              click="button1_clickHandler(event)"/>

您将逐渐了解组件的行为。

希望这能解决你的问题.....

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10213017

复制
相关文章

相似问题

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