如何在 Flex 中不超出面板边框绘制?

Posted

技术标签:

【中文标题】如何在 Flex 中不超出面板边框绘制?【英文标题】:How to draw not out of panel borders in Flex? 【发布时间】:2013-03-03 12:26:59 【问题描述】:

我想画一些线,它们不能越过面板边界,我不知道该怎么做...... 线越过面板边界,但我希望该线进入面板,然后我可以缩放它。 这是我的代码:

<?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" minWidth="955" minHeight="600"
               >

<fx:Script>
    <![CDATA[
        import mx.graphics.SolidColorStroke;

        import spark.primitives.Line;



        private function drawLine():void 
        
            var myShape:Shape = new Shape();
            myShape = new Shape() ;


            myShape.graphics.lineStyle(2, 0x00008B, .75);
            myShape.graphics.moveTo(500, 500);

            myShape.graphics.lineTo(25, 45);
            spr.addChild(myShape);
        
    ]]>
</fx:Script>


<mx:Button label="Click" click="drawLine()" />
<s:Panel  y="30"   layout="vertical" title="Panel" borderColor="#008040" fontFamily="Arial" fontWeight="bold" fontSize="13">

<mx:Text text="Drawing.." fontWeight="bold"/>
        <s:SpriteVisualElement   id="spr"/>
</s:Panel>
</s:Application>

【问题讨论】:

【参考方案1】:

一种简单的方法是将内容放入Group 并设置clipAndEnableScrolling

<s:Panel>
    <s:VGroup   clipAndEnableScrolling="true">
        <mx:Text text="Drawing.." fontWeight="bold"/>
        <s:SpriteVisualElement   id="spr"/>            
    </s:VGroup>
</s:Panel>

【讨论】:

以上是关于如何在 Flex 中不超出面板边框绘制?的主要内容,如果未能解决你的问题,请参考以下文章

extjs 5 网格的滚动条在边框布局面板中不起作用

Flex 如何将 setStyle 延迟到下一次更新?

如何获取椭圆边框的坐标

在 java swing 组件上绘制边框

绘制超出 UIView 的界限

当嵌入为文本输入边框样式的类时,如何在 flex 中平滑嵌入的图像