【问题标题】:EaselJS - scale Container without scaling certain children of containerEaselJS - 缩放容器而不缩放容器的某些子项
【发布时间】:2016-06-07 13:09:53
【问题描述】:

我正在 CreateJS(特别是 EaselJS)中创建一个项目,其中有一个可拖动的地图。我正在努力解决这个问题。

基本上,当用户将地图拖到某些点时,地图应该会自动放大或缩小(即地图容器的 scaleX 和 scaleY 发生变化),以便专注于感兴趣的区域。

这将是相当简单的,事实上我已经有一个原型可以做到这一点——只有一个问题。 地图上方有一层地图标记(地图上的大头针)。当地图放大时,这些地图标记需要停留在地图上它们的底层位置。

使标记成为地图容器的子项是合乎逻辑的步骤,但这样做还有一个问题:标记位于正确的位置,但是当地图放大时,标记会变大。缩小时,标记会变小。

有没有一种有效的方法可以防止这些标记的容器自己缩放,只与父容器的缩放同步?

【问题讨论】:

    标签: javascript maps scale createjs easeljs


    【解决方案1】:

    不要将所有东西都放在同一个Container中,而是使用多个Container,并使用localToGlobal来定位标签。这将是更多的工作,但它确实是唯一的方法。

    您可以对标签进行反缩放,但 Container 的主要目的是一起平移和转换一组显示对象。

    【讨论】:

    • 到目前为止一切都很好,但计算效率高吗?该地图将有数百个标记,其中几十个可能在任何时候都可见。所有人的坐标都需要检查/更新以显示用户拖动的每个刻度,并且......我担心它会滞后于浏览器。
    • 它的性能肯定会降低,因为必须单独计算转换,但开销会很小。不过,这与反缩放子元素大致相同。
    猜你喜欢
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    • 1970-01-01
    • 2017-12-06
    • 1970-01-01
    相关资源
    最近更新 更多