AS2: класс не работает - PullRequest
1 голос
/ 01 июля 2011

вот мой класс:

 class com.RCN.Menu.Menu extends MovieClip {

    public var title:String;
    public var menuItems:Array;
    public var titleField:MovieClip;

    public function Menu(title:String, menuItems:Array, menuActions:Array) {
        this.titleField = createTitleBar(title);
    }

    public function createTitleBar(title:String) {
        var titleBar = createEmptyMovieClip("titleBar", 1);
            var titleText = createTextField("titleText", this.getNextHighestDepth(), 10, 10, 100, 100);
            titleText.text = title;
            titleText.autoSize = true;
            titleText.multiline = false;
            titleText.wordWrap = false;
            titleText.border = true;
            titleText.background = 0xffffff;
            var format:TextFormat = new TextFormat();
            format.font = "Arial";
            format.size = 14.5;
            format.bold = true;
            format.align = "left";
            titleText.setTextFormat(format);
            return titleBar;
    }
}

Тем не менее, в моем SWF, когда я запускаю следующий код, я получаю неопределенное значение, может кто-нибудь понять, почему?(новый для классов)

import com.RCN.Menu.Menu;

var Accountability:Menu = new Menu("hello",[a,b,c,d]);
trace(Accountability.titleField);

Спасибо

1 Ответ

1 голос
/ 01 июля 2011

Ваш вызов createEmptyMovieClip терпит неудачу, потому что нет стадии для создания мувиклипа.Рассмотрим простой пример того, как сделать это без присоединения вашего класса к элементу библиотеки:

Класс:

class MyMenu extends MovieClip {

    public var titleField:MovieClip;

    public function MyMenu($target:MovieClip) {
        this.titleField = createTitleBar($target);
    }

    public function createTitleBar($target:MovieClip):MovieClip {
        var titleBar = $target.createEmptyMovieClip("titleBar", 1);
        return titleBar;
    }
}

IDE:

import MyMenu;
var menu:MyMenu = new MyMenu(this);
trace(menu.titleField);
...