如何解决控制/初始化外部类[AS3]
| 在开除之前,我知道在SO上有很多非常相似的问题。但是,给出的解决方案都没有对我有任何帮助,可能是因为我的情况有所不同。 我有一个加载外部类的主类(单独的.as文件)。在此外部类中,有几个对象绑定了补间和时间事件。 我想做的是在Main类中调用某个函数时开始动画。但是,我已经尝试了多种方法来停止和/或重置外部类中的动画,因此,如果在Main中调用了所需的函数,它将从头开始。 Main.as:package {
//required imports
public class Main extends MovieClip {
var myClass:MyClass = new MyClass; //this is the external class
var button:Button = new Button; //movieclip in the library
public function Main() {
addChild(myClass); //I want to do this here so the objects show from the start
//try 1: myClass.gotoAndStop(1);
//try 2: myClass.stop();
button.addEventListener(MouseEvent.MOUSE_CLICK,playAnimation);
}
function playAnimation (e:MouseEvent) {
//try 1: myClass.gotoAndPlay(1);
//try 2: myClass.start();
//try 3: controlling the startTweening() function in MyClass,I tried different ways
}
}
}
问题从上面的Main类开始。我还不想动画!
MyClass.as:
package {
//required imports
public class MyClass extends MovieClip {
//vars
public function MyClass() {
startTweening();
}
function startTweening() {
//tween event
//calling next function (with use of a TimerEvent) after tween is done. This is repeated several times.
}
}
}
此类中的所有内容都可以正常运行,所以这不是问题。
如果有什么不同,我在MyClass中使用TweenMax进行补间。我没有在.fla中使用时间轴。
任何帮助将不胜感激!
解决方法
如果不想在创建
MyClass
时设置动画,请从MyClass
的构造函数中删除startTweening();
调用。
将startTweening();
设为public
函数,并在需要时使用myClass.startTweening()
对其进行调用。
这是MyClass
public class MyClass extends MovieClip {
//vars
public function MyClass() {
}
public function startTweening() {
//tween event
//calling next function (with use of a TimerEvent) after tween is done. This is repeated several times.
}
}
这里是主班
public class Main extends MovieClip {
var myClass:MyClass;
var button:Button = new Button; //movieclip in the library
public function Main() {
myClass = addChild(new MyClass()) as MyClass;
button.addEventListener(MouseEvent.MOUSE_CLICK,playAnimation);
}
function playAnimation (e:MouseEvent) {
myClass.startTweening();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。