添加到画布时,Flex图像组件不是画布容器

时间:2010-07-28 21:52:09

标签: flex actionscript-3

我正在将一个flex图像组件添加到具有相当大图像的mx:canvas组件中。我将水平和垂直滚动策略设置为“on”,但是当我将图像添加到画布时,它不会展开以显示整个图像(滚动条未激活)。

其他人都有这个问题。

代码很简单:

<mx:Canvas  id="myCanvas" minWidth="0" minHeight="0"  horizontalScrollPolicy="on" verticalScrollPolicy="on">



    </mx:Canvas>

和添加图片的脚本

var newImg:Image = new Image();
newImg.source = $value.sourceImg;
newImg.x = $value.positionX;
newImg.y = $value.positionY;
newImg.scaleX = $value.scaleX * _scaleRatio ;
newImg.scaleY = $value.scaleY * _scaleRatio;
newImg.rotation = $value.rotation;
myCanvas.addChild(newImg);

4 个答案:

答案 0 :(得分:1)

好的,所以我不得不使用clipCOntent = true。我有clipContent =“false”,我认为这意味着它会剪切图像,并且边界之外的任何东西都可以滚动,但它实际上只是剪辑它而不提供滚动。

答案 1 :(得分:0)

如果您发布了代码会很有帮助,但是如果没有看到它,我建议在画布上设置minWidth =“0”。这是一个强制重新测量画布的老技巧,因此它可以正确显示滚动条。希望有所帮助。

答案 2 :(得分:0)

尝试使用 canvas.rawChildren.addChild(img)而不是 canvas.addChild(img)。这对我来说很有用,否则你需要加入Flex组件测量系统 - 但这很少是必要的。

干杯

答案 3 :(得分:0)

创建第一个画布(viewCanvas)并在其中放置另一个画布(imageCanvas)。

将imageCanvas上的滚动策略设置为“off”。这应该工作,viewCanvas应该有滚动条。 注意没有在imageCanvas或下面的代码中的图片上指定宽度/高度

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

    <mx:Canvas id="viewCanvas" x="95" y="65" width="169" height="159">

        <mx:Canvas id="imageCanvas" x="0" y="0" horizontalScrollPolicy="off" verticalScrollPolicy="off">
            <mx:Image x="0" y="0">
                <mx:source>http://www.beach-holiday.cn/beach-holiday/pics/2009/09/florida-fort-lauderdale.jpg</mx:source>
            </mx:Image>
        </mx:Canvas>

    </mx:Canvas>

</mx:Application>