我正在建立一个网站,其中的图库使用AS3补间从左向右滑动,停在特定的x坐标处以显示特定项目。
当达到坐标时,我想让有关该项目的信息可见。
我写了这篇文章但我不明白为什么它不起作用。当我预览时,Info1动画片段不会出现。
if (GalleryPanel.x==4715.45)
{
Info1.visible=true;
}
else
{
Info1.visible=false;
}
这是移动图库的代码:
var tweenitem1:Tween = new Tween(GalleryPanel, "x", Strong.easeOut, GalleryPanel.x, 4715.45, 1, true);
目前,Info 1只是我在时间轴上放置的一个moviclip来测试我的代码。 Info 1符号属性设置为不可见;当它设置为可见时,它会在GalleryPanel翻译时保持可见。
答案 0 :(得分:1)
尝试
if (GalleryPanel.x > 4715 && GalleryPanel.x < 4716)
{
Info1.visible=true;
}
使用小数位来检查相等是很冒险的。
答案 1 :(得分:1)
您的代码无法正常工作,因为它在开头执行一次(且只执行一次)。它不会持续监控变量。
但无论如何,这样做会是一个坏主意。您必须不断浪费资源来检查此变量(如果您想要添加更多目的地,则会变得更糟)。
当达到坐标时,我想让有关该项目的信息可见。
补间完成时达到坐标。要识别它,只需为TweenEvent.MOTION_FINISH
添加一个监听器。
import fl.transitions.TweenEvent;
import fl.transitions.Tween;
import fl.transitions.easing.*;
var tweenitem1:Tween = new Tween(GalleryPanel, "x", Strong.easeOut, GalleryPanel.x, 4715.45, 1, true);
tweenitem1.addEventListener(TweenEvent.MOTION_FINISH, onMotionFinish);
function onMotionFinish(te:TweenEvent):void
{
Info1.visible = true;
}
当下一个补间开始时,要转换到应用程序的其他状态,您应该再次隐藏Info1
。