torrent4you.ru | fims4you.club | Главная | Регистрация | Вход | Приветствую Вас | Гость| RSS
  • Страница 1 из 1
  • 1
Форум » uCoz » Школа Flash » Создание меню через XML
Создание меню через XML
LSDДата: Воскресенье, 21.08.2011, 02:49 | Сообщение # 1
Легенда Зоны
Группа: Администраторы
Сообщений: 619
Статус: Online
Источник: http://tutorials.flashmymind.com/2009/02/c...a-menu-via-xml/
В этом уроке Я расскажу вам о простом XML приёме, который вы можете использовать для того, чтобы создавать своё меню. С помощью XML вы можете легко и быстро изменять своё меню так, как вам больше нравится.

Настройка элементов

1. Сначала нужно создать XML файл. Напишите в блокноте следующий код и сохраните файл под именем "menu.xml".
Code
<site>  
<links>  
<link name="Home"/>  
<link name="Works"/>  
<link name="About"/>  
<link name="Contact"/>  
</links>  
</site>


4. Внутри мувиклипа создайте еще один слой с текстовым полем. В свойствах текстового поля сделайте его динамическим и пропишите instance name как "menuLabel". Нажмите кнопку Embed и встройте все символы в текстовое поле.

5.Удалите мувиклип menuItem со сцены (он останется в библиотеке). И прилинкуйте мувиклип к классу "MenuItem".
Пишем код

6. В таймлайне *.fla документа, в первом кадре пишем код.

Сначала создадим переменную и попробуем загрузить *.xml файл.
Code
//Импорт необходимых классов.  
import fl.transitions.Tween;  
import fl.transitions.easing.*;  
     
//Путь до XML файла.  
//Вы можете прописать любой путь.  
var xmlPath:String = "menu.xml";  
     
//Данные из XML будут помещены в эту переменную после загрузки.  
var settingsXML:XML;  
     
//Массив для твин анимаций нужен для того,  
//чтобы сборщик мусора не удалял анимации в самое неподходящее время.  
var tweensArray:Array = new Array();  
//Твин анимации кнопки.  
var buttonTween:Tween;  
     
// Загружаем XML файл  
var loader = new URLLoader();  
loader.addEventListener(Event.COMPLETE, xmlLoaded);  
loader.load(new URLRequest(xmlPath));

Если всё понятно, то пишем дальше. smile Теперь напишем функцию загрузки:
Code
//Эта функция вызывается, когда XML файл загружен.  
function xmlLoaded(e:Event):void  
{  
   //Проверяем, не равен ли наш загружчик null.  
   if ((e.target as URLLoader) != null )  
   {  
   //Помещаем данные XML файла в переменную.  
   settingsXML = new XML(loader.data);  
   settingsXML.ignoreWhitespace = true;  
   //Вызываем функцию создания меню.  
   createMenu();  
   }  
}

Теперь напишем функцию создания меню:
Code
function createMenu():void  
{  
   //Локальная переменная для экземпляра класса MenuItem.  
   var menuItem:MenuItem;  
   //Счетчик.  
   var i:uint = 0;  
     
   //Цикл по пунктам links, найденых в XML файле.  
   for each (var link:XML in settingsXML.links.link)  
   {  
     
   menuItem = new MenuItem();  
     
   //Вставка названия кнопки меню. (link.@name читает атребут "name" в элементе link)  
   menuItem.menuLabel.text = link. @ name;  
     
   //Если текст больше, чем текстовое поле, то выравниваем размер.  
   menuItem.menuLabel.autoSize = TextFieldAutoSize.LEFT;  
     
   //Помещаем кнопку меню на сцену.  
   menuItem.x = 20;  
   menuItem.y = 30 + i * 40;  
     
   //Активируем крсор над кнопкой. Отключаем у текстового поля кнопки реакцию на мышь.  
   menuItem.buttonMode = true;  
   menuItem.mouseChildren = false;  
     
   //Назначаем слушатели событий.  
   menuItem.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);  
   menuItem.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);  
     
   addChild(menuItem);  
     
   //Считаем количество кнопок.  
   i++;  
   }  
}  
    


Теперь последний штрих - функции наведения и отведения мыши, которые будут анимировать кнопки:

Code
//Наведение мыши.  
function mouseOverHandler (e:Event):void {  
     
   //Увеличение до двойной длины.  
   buttonTween = new Tween(e.target, "scaleX", Elastic.easeOut, 1, 2, 1, true);      
}  
     
//Отведение мыши.  
function mouseOutHandler (e:Event):void {  
     
   //Возврат к нормальной длине.  
   buttonTween = new Tween(e.target, "scaleX", Elastic.easeOut, e.target.scaleX, 1, 1, true);  
     
}

Готово. Тестируем ролик и наслаждаемся своим новым меню.
Весь код сразу:
Code
//Импорт необходимых классов.  
import fl.transitions.Tween;  
import fl.transitions.easing.*;  
     
//Путь до XML файла.  
//Вы можете прописать любой путь.  
var xmlPath:String = "menu.xml";  
     
//Данные из XML будут помещены в эту переменную после загрузки.  
var settingsXML:XML;  
     
//Массив для твин анимаций нужен для того,  
//чтобы сборщик мусора не удалял анимации в самое неподходящее время.  
var tweensArray:Array = new Array();  
//Твин анимации кнопки.  
var buttonTween:Tween;  
     
// Загружаем XML файл  
var loader = new URLLoader();  
loader.addEventListener(Event.COMPLETE, xmlLoaded);  
loader.load(new URLRequest(xmlPath));  
     
//Эта функция вызывается, когда XML файл загружен.;  
function xmlLoaded(e:Event):void  
{  
   //Проверяем, не равен ли наш загружчик null.  
   if ((e.target as URLLoader) != null )  
   {  
   //Помещаем данные XML файла в переменную.  
   settingsXML = new XML(loader.data);  
   settingsXML.ignoreWhitespace = true;  
   //Вызываем функцию создания меню.  
   createMenu();  
   }  
}  
     
function createMenu():void  
{  
   //Локальная переменная для экземпляра класса MenuItem.  
   var menuItem:MenuItem;  
   //Счетчик.  
   var i:uint = 0;  
     
   //Цикл по пунктам links, найденых в XML файле.  
   for each (var link:XML in settingsXML.links.link)  
   {  
     
   menuItem = new MenuItem();  
     
   //Вставка названия кнопки меню. (link.@name читает атребут "name" в элементе link)  
   menuItem.menuLabel.text = link. @ name;  
     
   //Если текст больше, чем текстовое поле, то выравниваем размер.  
   menuItem.menuLabel.autoSize = TextFieldAutoSize.LEFT;  
     
   //Помещаем кнопку меню на сцену.  
   menuItem.x = 20;  
   menuItem.y = 30 + i * 40;  
     
   //Активируем крсор над кнопкой. Отключаем у текстового поля кнопки реакцию на мышь.  
   menuItem.buttonMode = true;  
   menuItem.mouseChildren = false;  
     
   //Назначаем слушатели событий.  
   menuItem.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);  
   menuItem.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);  
     
   addChild(menuItem);  
     
   //Считаем количество кнопок.  
   i++;  
   }  
}  
     
//Наведение мыши.  
function mouseOverHandler (e:Event):void {  
     
   //Увеличение до двойной длины.  
   buttonTween = new Tween(e.target, "scaleX", Elastic.easeOut, 1, 2, 1, true);   
}  
     
//Отведение мыши.  
function mouseOutHandler (e:Event):void {  
     
   //Возврат к нормальной длине.  
   buttonTween = new Tween(e.target, "scaleX", Elastic.easeOut, e.target.scaleX, 1, 1, true);  
     
}


 
Форум » uCoz » Школа Flash » Создание меню через XML
  • Страница 1 из 1
  • 1
Поиск:


Авторское право на игру и использованные в ней материалы принадлежат GSC Game World.
Любое использование материалов сайта возможно только с разрешения администрации.
sitemap v1sitemap v2
Powered by:
Despair® 2024

Хостинг от uCoz