Показать сообщение отдельно
Старый 14.06.2011, 14:29
vivado вне форума Посмотреть профиль Отправить личное сообщение для vivado Найти все сообщения от vivado
  № 12  
Ответить с цитированием
vivado

Регистрация: Aug 2010
Сообщений: 282
Всем привет. Спасибо за помощь. Благодаря вам кое что начинает получаться.

Код AS1/AS2:
xn=162; //Начальные координаты меню по X
yn=210; //Начальные координаты меню по Y
xrast=78; //расстояние между пунктами меню по X
yrast=15; ////расстояние между пунктами меню по Y
 
var configXmlPath:String = 'menu_horizontal.xml';//URL конфигурационного XML
var xmlData:XML = new XML(); //Создаем переменную
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load(configXmlPath);
 
function loadXML (success:Boolean){
	if (success){
		var xmlNode:XMLNode = this.firstChild ; //для сокращения записи
 
		//Переменная колличества пунктов меню
		var amountMenu:Number = xmlNode.childNodes.length;
 
		for (i = 0; i < amountMenu; i++){
			//Считываем ID для подменю
			var MenuId:Number = parseInt(xmlNode.childNodes[i].attributes['id']);
			//Считываем Url для меню 
			var MenuUrl:Number = xmlNode.childNodes[i].attributes['url']; 
			//Считываем Имя для меню 
			var MenuName:Number = xmlNode.childNodes[i].attributes['name']; 
 			 //Прикрепляем мувик Меню из библиотеки
			_root.attachMovie("Menu","Menu"+MenuId,MenuId);
                        //Задаем координаты по x и y для мувика
			_root["Menu"+MenuId]._x = xn+xrast*MenuId;
			_root["Menu"+MenuId]._y = yn;
                       //Загружаем переменные Имя Меню и Url
			_root["Menu"+MenuId].txt_menu = MenuName;
			_root["Menu"+MenuId].url_menu = MenuUrl;
 
				//Переменная колличества пунктов подменю
				var amountSubmenu:Number = xmlNode.childNodes[i].childNodes.length;
 
				for (j = 0; j < amountSubmenu; j++)	{
				//Считываем ID для подменю
				var SubmenuId:Number = parseInt(xmlNode.childNodes[i].childNodes[j].attributes['id']); 
				//Считываем Url для подменю
				var SubmenuUrl:Number = xmlNode.childNodes[i].childNodes[j].attributes['url']; 
				//Считываем Имя для подменю
				var SubmenuName:Number = xmlNode.childNodes[i].childNodes[j].attributes['name']; 
				//Прикрепляем мувик Подменю из библиотеки
				_root["Menu"+MenuId].attachMovie("SubMenu","SubMenu"+SubmenuId,SubmenuId); 
                                //Задаем координаты по x и y для мувика
				_root["Menu"+MenuId]["SubMenu"+SubmenuId]._x = 0;
				_root["Menu"+MenuId]["SubMenu"+SubmenuId]._y = _root["Menu"+MenuId]._y/yn+15+yrast*SubmenuId;
                                //Загружаем переменные Имя Подменю и Url
				_root["Menu"+MenuId]["SubMenu"+SubmenuId].url_submenu = SubmenuUrl;
				_root["Menu"+MenuId]["SubMenu"+SubmenuId].txt_submenu = SubmenuName;
			}
		}
	}
}
Меню распарсинговано и приаттачено, теперь хочу сделать чтоб соответствующие пункты подменю раскрывались и скрывалось при подводе мыши к основным пунктам меню. Хочу спросить совета, как лучше это сделать.

Думаю сделать это так.
Способ 1. Аттачить мувики Подменюшек в отдельный мувик (например в какой-нибудь listSubMenu) расположенный в мувике пунктов Меню, который по умолчанию будет скрыт (_visible=false) а потом на пункт Меню повесить:
Код AS1/AS2:
onRelease = function() {
listSubMenu._visible=true.
}
Способ 2. Писать условие для каждого из главных пунктов меню, чтото типа
Код AS1/AS2:
 if (MenuId=="0"){
_root["Menu"+MenuId].onRollOver = function() {
listSubMenu.gotoAndPress(1); //отображаем подменю для Меню 0
};
 if (MenuId=="1"){
_root["Menu"+MenuId].onRollOver = function() {
listSubMenu.gotoAndPress(2); //отображаем подменю для Меню 1
};
 
//и т.д.
Подскажите как будет правильнее.
Вот ссылка на текущий исходник.menu


Последний раз редактировалось vivado; 14.06.2011 в 14:51.