package lib.cms{
import lib.cms.MenuItem;
import flash.text.*;
import flash.display.*;
import flash.net.URLLoader;
import flash.net.URLRequest;
import caurina.transitions.*;
import com.utils.CallArg;
import flash.events.*;
public class Menu {
private var __menuList:XMLList;
private var __loader:URLLoader;
private var __xml:XML;
var MenuStartX:Number = 100;
var MenuStartY:Number = 100;
var MenuItemPadding:Number = 5;
public function Menu(XMLstr:String = "xml/mainmenu.xml"):void {
trace("Menu class called. ");
loadXML(XMLstr);
}
private function loadXML(XMLstr:String):void {
__loader = new URLLoader();
__loader.addEventListener(Event.COMPLETE, onXMLLoaded);
__loader.load(new URLRequest(XMLstr));
}
private function onXMLLoaded(event:Event):void {
// Put some error catching in case the XML is malformed.
try {
__xml = XML(event.target.data);
__menuList = __xml.children();
trace("XML menu loaded");
for (var i:int =0; i<__menuList.length(); i++) {
// for the first element there is no previous textfield inserted
var title:String = __menuList[i].@title;
var menu_text = __menuList[i].@text;
var action:String = __menuList[i].attribute("action");
if (i==0) {
var _x = MenuStartX;
var _y = MenuStartY;
//createMainMenu(title, menu_text, action, _x , _y , i );
//createSubmenus(__menuList,i);
} else {
// Create the text field getting positioning setting form the previous textField inserted
var dx = getChildByName("MenuItem"+(i-1).toString()).x;
var dy = getChildByName("MenuItem"+(i-1).toString()).y + 1180: Call to a possibly undefined method getChildByName.getChildByName("MenuItem"+(i-1).toString()).height + MenuItemPadding;
//createMainMenu(title, menu_text, action, dx , dy , i );
//createSubmenus(__menuList,i);
}
}
} catch (error:Error) {
// Display an error message.
var errorMessage:TextField = new TextField();
errorMessage.autoSize = TextFieldAutoSize.LEFT;
errorMessage.textColor = 0xFF0000;
errorMessage.text = error.message;
this.stage.addChild(errorMessage);
return;
}
}
}
}
|