想要使用ActionScript以编程方式在yworks GraphCanvasComponent上设置缩放

时间:2014-11-24 04:27:37

标签: actionscript-3 flex

我正在使用flex 3.6和yworks版本2.8。

我在mxml actionscript代码中手动设置GraphCanvasComponent上的缩放时遇到问题。 zoom属性绑定到滑块。除了绑定之外,这是一个:

    <yworks:GraphCanvasComponent
        id="graphCanvas"
        width="100%"
        height="100%"
        minZoom="0.25"
        maxZoom="8"
        mouseWheelZoomFactor="1.02">

   <mx:HSlider
        id="zoomSlider"
        width="150"
        showDataTip="false"
        change="{graphCanvas.zoom=Math.pow(2,event.value)}"
        liveDragging="true"
        tickInterval="1.0"
        value="{Math.log(graphCanvas.zoom)/Math.log(2)}"
        labels="{[graphCanvas.minZoom, graphCanvas.maxZoom]}"
        minimum="{Math.log(graphCanvas.minZoom)/Math.log(2)}"
        maximum="{Math.log(graphCanvas.maxZoom)/Math.log(2)}"/>
        <!-- the slider's minimum, maximum and value are bound
          to the corresponding properties on graphCanvas -->

但是,当我在动作脚本中手动设置GraphCanvasComponent的缩放属性时,它似乎已设置但实际图形不会缩放,滑块不会移动以反映新值。

这是我的动作脚本代码。如果重要的话,它是来自RoundtripHandler事件的回调。

private function onNetworkTopologyUpdateComplete(
  event:RoundtripEvent):void
{
   graphCanvas.zoom = 4.0;
}

请让我知道如何对我的组件上的缩放进行编程更改。谢谢!

1 个答案:

答案 0 :(得分:0)

我与yworks工程师交谈,他们说RoundtripHandler完成后会安排一个fitContent调用。由于这将以异步方式执行,因此它将覆盖缩放设置。

解决方案是在RoundtripHandler上将fitContentOnUpdate属性设置为false。当你这样做时,fitContent调用不会发生。