我有一个滚动窗格的内容,单击该内容时,会显示带有 attachMovieClip 的工具提示影片剪辑;问题是附加的影片剪辑,对于第一行,位于 ScrollPane 的边框下方并且部分不可见。有没有办法解决这个问题(不改变附加影片剪辑的位置?)
1 回答
我假设您正在ScrollPane
's中加载一个影片剪辑contentPath
。这个movieclip 动态加载另一个movieclip,即工具提示。如果您以这种方式加载工具提示,则深度无关紧要:ScrollPane
对象内的所有内容都被剪裁,您将永远无法查看下面的内容。当然,这是ScrollPane
课程的重点;它一次只显示一些底层内容,并允许用户滚动。
这是可以复制问题的代码:
this.attachMovie("tooltip1","tooltip1A", 100); //note the high level
var mouseListener:Object = new Object();
mouseListener.onMouseMove = function() {
tooltip1A._x = _xmouse;
tooltip1A._y = _ymouse;
updateAfterEvent();
};
Mouse.addListener(mouseListener);
把它放在一个库影片剪辑中(调用它paneContentMC
)。打开属性。选中“Export for Actionscript”并将“标识符:”文本设为“paneContentMC1”。关闭属性,然后在时间轴上创建一些随机图形paneContentMC
。
创建另一个名为tooltip
. 打开属性。选中“Export for Actionscript”并将“标识符:”文本设为“tooltip1”。
最后,在场景的主时间轴上,创建一个ScrollPane
并将“contentPath”属性设为“paneContentMC1”。在此时间线的第一帧的 Actionscript 中放置一个stop();
命令。
那里有一个剪辑的工具提示。你如何解决这个问题?
您需要将工具提示附加到 的ScrollPane
内容之外的对象。由于您不知道运行时舞台上可能存在或不存在哪些对象,因此请选择一个全局对象,例如_root
.
进入Actionscript里面paneContentMC
。将代码更改为:
var mc1:MovieClip = _root.attachMovie("tooltip1","tooltip1A", _root.getNextHighestDepth());
var mouseListener:Object = new Object();
mouseListener.onMouseMove = function() {
_root.tooltip1A._x = _xmouse;
_root.tooltip1A._y = _ymouse;
updateAfterEvent();
};
这并不能完全解决问题,因为tooltip1A
在ScrollPane
. 但是,如果它tooltip1A
正在侦听来自paneContentMC
而不是来自鼠标的移动事件,这应该可以解决。
(已编辑以修复投票错误。)