【问题标题】:AS3 change item visibility if variable goes below X amount如果变量低于 X 数量,AS3 会更改项目可见性
【发布时间】:2012-04-01 21:02:08
【问题描述】:

我在下面附上了一个源文件,我有点卡住了。

基本上,它是一个 FLA,它有一个变量(smscounter),该变量基于从 XML 文件(在我的服务器上)读取的任何数字而改变。在主舞台的第 1 帧上有一个名为“rewinder”的大型影片剪辑。有左右按钮可在该影片剪辑“倒带器”内的帧之间导航。我在理论上试图做的是:

if(frame != 2) {button_right.visibility = true};
if(frame == 2 && smscounter > 5) {button_right.visibility = true};
if(frame == 2 && smscounter < 5) {button_right.visibility = false}

有人告诉我这不会起作用,因为一旦设置了变量(可见性),它就不会不断检查它,所以我必须调度一个事件?我已经尝试了 3-4 个教程,但都无法使用。

现在有几件事:
- 我很想避免任何超级复杂的事情。我所需要的只是在第 2 帧上,如果 smscounter 低于 5,按钮就不会出现。其他教程需要另一个类和文档类,但我无法让它们工作
- 按钮当前位于回卷器影片剪辑之外。我把它们放在里面和每一帧上,但我无法让它们对翻车做出反应。
- 代码与一年级学生编写的代码一样优化,主要是因为我是一名设计师,并且在整个过程中我一直在获得帮助。
- Greensock LoaderMax 用于放入视频和声音。与问题无关,我只是将它们放在那里以便更好地了解我正在处理的内容。

FLA 和源文件的链接: http://www.mediafire.com/download.php?ejy6j9h9r1c1829

【问题讨论】:

    标签: actionscript-3 flash dispatchevent gsap


    【解决方案1】:

    您可以将此代码添加到主时间轴 看起来您只能转到第 2 帧和第 3 帧,但您总共有 21 帧(来自电压条),这就是我使用数字而不是 1 和 totalFrames 的原因。

    rewinder.addEventListener(Event.ENTER_FRAME,checkButtons);
    function checkButtons(e:Event):void{
        if(rewinder.currentFrame <= 2){
            button_left.visible = false;
        }else{
            button_left.visible = true;
        }
    
        if(rewinder.currentFrame >= 3){
            button_right.visible = false;
        }else{
            button_right.visible = true;
        }
    }
    

    【讨论】:

    • 完美,从朋友那里得到了一些类似的帮助——我只是不知道如何听 ENTER_FRAME 然后做点什么。 (我是菜鸟)谢谢你的帮助!
    • 如果您不需要 AS3 功能,如果您只是想完成一个项目并且没有太多时间了解 as3,您可能需要考虑使用 AS2 代码。否则,我强烈建议您购买一三本关于 as3 的书。
    • 基础知识和游戏编程将带您了解一些基础知识,并希望为您节省大量精力,OOP 应该可以帮助您进入下一个级别,您正在编程,而不是编写脚本。当您在 as3 中制作游戏时,内存泄漏的空间很大,这可能会导致 flash 和浏览器崩溃。这会让人头疼,尤其是当您依赖时间轴动画和代码时。
    • 谢谢,感谢您的参考。我会使用 AS2,但我可以轻松加载大量视频的唯一方法是通过 Greensock Loadermax。我是一名设计专业的学生,​​所以我玩弄了一些 AS3 和其他 OOP 语言,但我往往无法理解,特别是这个项目。我有 O'Reilly AS3 的书,但仍然只是在以缓慢的速度学习。 Lynda 视频也很方便,但是当我花时间尝试学习更多有关 AS3 的知识时,我通常最终会说服自己成为一名更好的设计师,让程序员成为更好的程序员,而不是我两者兼而有之。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    • 2014-04-16
    相关资源
    最近更新 更多