0

大家好,我几天以来一直在尝试了解如何创建许多 as3 文件并能够从我的 main.as 文件中使用它们,因为代码太多了。我试图查看互联网,但我什么都不懂。

例如,我制作了这个 loginScreen.as,我想在游戏开始时从我的主界面使用它。main.as 文件将显示该屏幕。我想要做的是:

来自 main.as

import as3.loginScreen;
...
var loginscreen:loginScreen = new loginScreen();
addChild(loginscreen);

现在这是我的 loginScreen.as

package as3
{
import flash.display.MovieClip;
import flash.text.TextField;
import flash.text.TextFieldType;
import flash.text.TextFormat;

public class loginScreen
{

    public function loginScreen()
    {
        var loginBG:MovieClip = new LoginBG();
        loginBG.x = 0;
        loginBG.y = 0;
        loginScreen.addChild(loginBG);

        var txt_Username:TextField = new TextField();
        var txt_Password:TextField = new TextField();
        var myTextFormat:TextFormat = new TextFormat();

        //myTextFormat.font = "Arial";
        myTextFormat.size = 15;
        myTextFormat.color = 0xFFFFFF;

        txt_Username.type = TextFieldType.INPUT;
        txt_Password.type = TextFieldType.INPUT;

        txt_Username.border = false;
        txt_Username.width = 114;
        txt_Username.height = 20;
        txt_Username.x = 323;
        txt_Username.y = 431;

        txt_Password.border = false;
        txt_Password.width = 114;
        txt_Password.height = 20;
        txt_Password.x = 323;
        txt_Password.y = 461;

        txt_Username.defaultTextFormat = myTextFormat;
        txt_Password.defaultTextFormat = myTextFormat;

        loginScreen.addChild(txt_Username);
        loginScreen.addChild(txt_Password);
    }
}
}
4

1 回答 1

0

首先将 loginScreen 的类定义更改为:

public class loginScreen extends Sprite

然后与其他两个更改loginScreen.addChild(loginBG);为相同。addChild(loginBG);

loginScreen.addChild(txt_Username);
loginScreen.addChild(txt_Password);

需要是 :

addChild(txt_Username);
addChild(txt_Password);

loginScreen是类的名称,尝试向其中添加子级是没有意义的。

此外,以大写字母开头的类名也是一个好习惯,这样您就不会将它们与变量混淆,因此您可能需要更改class loginScreenclass LoginScreen.

希望有帮助。

于 2013-05-04T04:23:26.953 回答