gpt4 book ai didi

apache-flex - 可调整大小的应用程序中的 Flex 工具提示定位

转载 作者:行者123 更新时间:2023-12-04 03:18:11 41 4
gpt4 key购买 nike

我们的 Flex 应用程序会随着浏览器窗口自动调整大小,我们已经很容易地解决了一大堆缩放问题,但剩下的就是工具提示。它们显示在屏幕上的错误位置,未根据窗口大小正确缩放。由于工具提示是自动定位的,我们该如何解决这个问题?

澄清一下,我使用的是内置的 flex 工具提示。问题不在于工具提示在显示时不会随着应用程序调整大小而移动。如果我调整应用程序的大小,工具提示现在将全部显示在错误的位置,即使其他所有内容都会自动正确更新。

最佳答案

不确定您是否找到了解决此问题的方法,但有一种更简单的方法。此代码在捕获阶段(显示之前) Hook 到 tooltip-show 事件,以根据包含元素的比例适本地缩放和定位它——在“这种”情况下,parentApplication 文档。它还包含一些代码,就我而言,这些代码有助于防止工具提示在缩放时从舞台上漂移(因此您可能只需要前几行 - t.scaleX t.scaleY):

import mx.events.ToolTipEvent;

addEventListener(ToolTipEvent.TOOL_TIP_SHOW, handleToolTipShow, true, 0, true);

private function handleToolTipShow(event:ToolTipEvent):void
{
if (event && event.toolTip)
{
var t:IToolTip = event.toolTip;

// Scale the tip itself
t.scaleX = this.scaleX;
t.scaleY = this.scaleY;

// Scale the offsets
var xOffset:int = 10 * this.scaleX;
var yOffset:int = 10 * this.scaleY;

// Set the default positioning
t.x = parent.mouseX + xOffset;
t.y = parent.mouseY + yOffset;

// Set the adjusted height and width
var th:Number = t.height * this.scaleX;
var tw:Number = t.width * this.scaleY;

var rightEdge:int = t.x + tw + xOffset;
var playerRightEdge:int = parent.width;
var bottomEdge:int = t.y + th + yOffset;
var playerBottomEdge:int = parent.height;

// Offscreen right
if (rightEdge > playerRightEdge)
{
t.move(parent.mouseX - xOffset - tw, parent.mouseY + yOffset);
}

// Offscreen bottom
if (bottomEdge > playerBottomEdge)
{
t.move(parent.mouseX + xOffset, parent.mouseY - yOffset - th);
}
}
}

关于apache-flex - 可调整大小的应用程序中的 Flex 工具提示定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/380917/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com