这段代码确实有不合理的地方。
因为在没有var fileMenu的地方为fileMenu添加了侦听。相当于给一个不存在的对象添加了侦听
调整一下,先有 申明再有侦听是可以的。
复制内容到剪贴板
代码:
var menuData = new XML();
//组件的颜色能随及变换么?或者指定颜色
menuData.ignoreWhite = true;
menuData.onLoad = function(success) {
if (success) {
createClassObject(mx.controls.MenuBar, "myMenuBar", 0, {});
var fileMenu = myMenuBar.addMenu("File");
fileMenu.addEventListener("change", fileChangeListener);
var viewMenu = myMenuBar.addMenu("View");
var cntrMenu = myMenuBar.addMenu("Control");
var helpMenu = myMenuBar.addMenu("Help");
fileMenu.dataProvider = menuData.firstChild.childNodes[0];
viewMenu.dataProvider = menuData.firstChild.childNodes[1];
cntrMenu.dataProvider = menuData.firstChild.childNodes[2];
helpMenu.dataProvider = menuData.firstChild.childNodes[3];
}
};
menuData.load("data.xml");
var fileChangeListener = new Object();
fileChangeListener.change = function(evt) {
trace(evt.menuItem.attributes.label);
if (evt.menuItem.attributes.label == "退出") {
fscommand("quit", "");
}
};
Stage.showMenu = false;