文档类中所有帧的AS3设置按钮

时间:2014-02-02 03:12:11

标签: actionscript-3 flash actionscript

我正在使用Flash创建一个简单的界面。假设我们有:

帧1:1按钮前进到第10帧( goto10

第10帧:2个按钮,一个进入第20帧( goto20 ),一个打开一个网址( openURL

框架20:3按钮,一个回到第1帧( goto1 ),一个进入第10帧( goto10 ),然后一个打开一个URL(的OpenURL

package {

import flash.display.MovieClip
import flash.events.Event;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.display.SimpleButton;

public class NKE_DocumentClass extends MovieClip {
    public var goto1:SimpleButton = new SimpleButton();
    public var goto10:SimpleButton = new SimpleButton();
    public var goto20:SimpleButton = new SimpleButton();
    public var openURL:SimpleButton = new SimpleButton();

    public function NKE_DocumentClass() {   
        goto1.addEventListener(MouseEvent.CLICK,function(self:MouseEvent):void{clickGo(self,1)});
        goto10.addEventListener(MouseEvent.CLICK,function(self:MouseEvent):void{clickGo(self,10)});
        goto20.addEventListener(MouseEvent.CLICK,function(self:MouseEvent):void{clickGo(self,20)});
        openURL.addEventListener(MouseEvent.CLICK,function(self:MouseEvent):void{urlGo(self,"http://google.com")});
        }

    public function clickGo(event:MouseEvent, nextCue:int):void {
        gotoAndStop(nextCue);
        trace("Advanced to: " + nextCue);
        }

    public function urlGo(event:MouseEvent, goURL:String):void {
        var request:URLRequest = new URLRequest(goURL);
        new URLLoader(request);
        trace("Executed URL: " + goURL);
        }

}

}

问题是,一旦我离开第1帧,没有一个按钮工作......他们只是没有反应。看起来代码一旦离开第1帧就不会保持加载状态。

思想?

1 个答案:

答案 0 :(得分:0)

我正在努力解决问题是因为当这个代码首次执行时(作为文档类),唯一存在的按钮是第1帧上的按钮?这是假设,而不是在Flash IDE中创建按钮,然后将它们从特定关键帧上的库中添加到舞台上。

我看到你已经以编程方式创建了SimpleButtons,但由于它们没有被添加到你所显示的代码中的舞台上,所以假设你只是用它们的名字命名它们。放在舞台上?如果我错了,请纠正我,如果以下情况没有帮助,我会尝试提供其他建议。

一种解决方案是在第一帧上创建它们,然后根据您的需要打开和关闭它们的可见性。

如果您不确定如何:

goto10.visible = false;

等等

我现在不记得没有测试但是如果你把它们放在不同关键帧的舞台上,这可能会导致问题。

回到将代码放在时间轴上的日子,如果你把代码放在第1帧上,但它引用了不在第1帧的对象,那么代码就会失败(这可能就是你的文档类正在发生的事情 - 它正在运行时并非所有对象都存在。)

我会确保它们全部位于一个层上,没有任何关键帧,从第1帧开始,您只需打开和关闭它们的可见性。或者,让您的类添加和删除按钮和其他界面元素,并且根本不使用时间轴。