我正在使用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帧就不会保持加载状态。
思想?
答案 0 :(得分:0)
我正在努力解决问题是因为当这个代码首次执行时(作为文档类),唯一存在的按钮是第1帧上的按钮?这是假设,而不是在Flash IDE中创建按钮,然后将它们从特定关键帧上的库中添加到舞台上。
我看到你已经以编程方式创建了SimpleButtons,但由于它们没有被添加到你所显示的代码中的舞台上,所以假设你只是用它们的名字命名它们。放在舞台上?如果我错了,请纠正我,如果以下情况没有帮助,我会尝试提供其他建议。
一种解决方案是在第一帧上创建它们,然后根据您的需要打开和关闭它们的可见性。
如果您不确定如何:
goto10.visible = false;
等等
我现在不记得没有测试但是如果你把它们放在不同关键帧的舞台上,这可能会导致问题。
回到将代码放在时间轴上的日子,如果你把代码放在第1帧上,但它引用了不在第1帧的对象,那么代码就会失败(这可能就是你的文档类正在发生的事情 - 它正在运行时并非所有对象都存在。)
我会确保它们全部位于一个层上,没有任何关键帧,从第1帧开始,您只需打开和关闭它们的可见性。或者,让您的类添加和删除按钮和其他界面元素,并且根本不使用时间轴。