Reputation: 13476
here is my class so far:
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;
}
}
Yet in my SWF when I run the following code I get undefined, can anyone see why? (new to classes)
import com.RCN.Menu.Menu;
var Accountability:Menu = new Menu("hello",[a,b,c,d]);
trace(Accountability.titleField);
Thanks
Upvotes: 1
Views: 462
Reputation: 15580
Your call to createEmptyMovieClip is failing because there is no stage to create a movieclip on. Consider this simple example of how to do this without attaching your class to a library item:
Class:
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);
Upvotes: 1