我在Flash应用程序上有两个界面面板。一个是主界面,另一个是配置面板。配置面板通常是不可见的,但是在可见的情况下,我希望将它的位置锁定到主界面,以便它们同时拖动。
这两个动画片段的附件如下:
var m_Main:MovieClip = attachMovie("MainWindow", "m_Main", getNextHighestDepth());
var m_Settings:MovieClip = attachMovie("SettingsWindow", "m_Settings", getNextHighestDepth());
m_Main剪辑是可拖动的,并在拖动开始/停止时调用这两个函数:
function StartDrag()
{
m_Main.startDrag(false, m_Borders.left,m_Borders.top, m_Borders.right, m_Borders.bottom);
if (m_Settings._visible)
{
m_IsDragging = true;
LocateSettingsWindow();
}
}
和
function StopDrag()
{
m_Main.stopDrag();
if (m_Settings._visible)
{
m_IsDragging = false;
LocateSettingsWindow();
}
}
LocateSettingsWindow()是:
function LocateSettingsWindow()
{
var position:Point = new Point(m_Main._x, m_Main._y);
m_Settings._x = position.x - (m_Settings._width + 15);
m_Settings._y = position.y;
if (m_IsDragging)
{
_global.setTimeout(this, "LocateSettingsWindow", 10);
}
}
我发现的每个解决方案都涉及类似的内容。将isDragging值设置为true,然后将第二个剪辑x和y更改为第一个剪辑。问题在于,在我发现的所有示例中,移动第二个剪辑时存在一定程度的延迟,因此它似乎滞后并且在第一个剪辑周围松散地浮动。
有没有办法做到这一点,以便m_Settings更牢固地锁定到m_Main?