我正在将一个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);
答案 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>