【发布时间】:2010-12-10 16:52:55
【问题描述】:
快速提问。我整个早上都在谷歌上搜索,但它要么不存在,要么以不注册的方式编写。我倾向于相信后者,因为这对我来说似乎完全是微不足道的。
我使用 AS 3.0 制作了一个小型 Flash 文件,这是我第一次真正能够坚持 OOP 的做事方式,而不是把时间轴上的东西混在一起来解决没有一切都在课堂上工作。
所以我想保持这种状态,但有一件事让我无法理解:如果不求助于“DocumentClass( root).instanceName.method。”
直觉告诉我必须有更好的方法来做到这一点(比如,每次我调用另一个类实例的函数时都不必引用文档类;当然不必使用“root”这个词——这似乎所以 Flash 5 给我。
谁有更好的方法可以分享?
提前致谢! SS
编辑:以下是一些相关代码: 主类:
package myApp {
import flash.display.*;
import flash.events.*;
public class Main extends flash.display.MovieClip {
public var background;
public var control;
public function Main() {
//load the background
this.background = new Background();
this.addChild(background);
//load the control
this.control = new Control;
this.addChild(control);
}
}
}
后台类:
package myApp {
import flash.display.*;
import flash.events.*;
public class Background extends flash.display.MovieClip {
public function Background() {
this.x = 0;
this.y = 0;
}
public function doSomething() {
//do something here
}
}
}
控制类:
package myApp {
import flash.display.*;
import flash.events.*;
public class Control extends flash.display.MovieClip {
private var section01;
private var section02;
private var section03;
public function Control() {
//some constructor code here
}
public function doSomethingCaller() {
MyApp(root).background.doSomething(); <--- HERE
}
}
}
【问题讨论】:
标签: actionscript-3