0
我一直在努力改进我经常使用的代码,并想知道是否有一种简单的方法来实现这一点。AS3 - 动态初始化对象
我有一个导航类,它定义构造函数之前的对象(private var exampleScreen:ExampleScreen;)。
基于ChangeScreenTo函数(destinationScreen:String)的字符串依赖项注入,是否可以获取已定义的屏幕并动态地初始化它(exampleScreen = new ExampleScreen();)? 无论哪种方式,没有人有比这更好的建议或我目前的switch语句的解决方案吗?
示例代码:
package{
public class ScreenController extends MovieClip {
private var currentScreen: DisplayObject;
//SCREENS
private var exampleScreen1:ExampleScreen1;
private var exampleScreen2:ExampleScreen2;
...
public function ScreenController() {
...
}
public function ChangeScreenTo(desinationScreenName: String) {
//REMOVE CURRENT SCREEN
if (currentScreen != null) {
removeChild(currentScreen);
currentScreen = null;
}
switch (destinationScreenName) {
case "exampleScreen1":
exampleScreen1 = new ExampleScreen1();
break;
case "exampleScreen2":
exampleScreen2 = new ExampleScreen2();
break;
...
}
mcDestinationScreen = this[(destinationScreenName)];
addChild(mcDestinationScreen);
currentScreen = mcDestinationScreen;
}
}
}
也许有人可以帮你,但是这对我来说过于抽象。在块中发布一些格式化的代码,以便我实际上可以看到您当前的实现 –
因此,您需要根据s字符串值来实例化某个类?与隐藏其他(以前打开的)屏幕有关吗? – www0z0k
代码添加到问题中。 –