Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.04.2008, 12:07
garold08 вне форума Посмотреть профиль Отправить личное сообщение для garold08 Найти все сообщения от garold08
  № 1  
Ответить с цитированием
garold08

Регистрация: Apr 2008
Сообщений: 10
По умолчанию Объясните принцип построения динамического меню на FLASH

Нужно сделать динамическое меню
кнопки располагаются вертикально
Название кнопки и id берется к примеру из XML
После нажатия на кнопку флэш составляет запрос, отправляет его на сервер и ждет ответа

Как реализовать? куда копать? От чего отталкиваться?

Старый 15.04.2008, 15:53
alekslitvinenk вне форума Посмотреть профиль Отправить личное сообщение для alekslitvinenk Посетить домашнюю страницу alekslitvinenk Найти все сообщения от alekslitvinenk
  № 2  
Ответить с цитированием
alekslitvinenk
 
Аватар для alekslitvinenk

Регистрация: Oct 2005
Адрес: Москва
Сообщений: 491
Отправить сообщение для alekslitvinenk с помощью ICQ Отправить сообщение для alekslitvinenk с помощью AIM Отправить сообщение для alekslitvinenk с помощью Skype™
Все зависит от конкретной структуры документа XML.
В самом общем виде задача сводиться к обходу этого самого xml в цикле.

Например, если xml будет вида:

<menu>
<item id="1" label="item 1" url="somepage1.html" />
<item id="2" label="item 2" url="somepage2.html" />
<item id="3" label="item 3" url="somepage3.html" />
</menu>

То код должен быть примерно таким:

Код:
 
import mx.utils.Delegate;
var menuXML:XML;
var menuItems: Array = new Array();
menuXML = new XML(); menuXML.ignoreWhite = true; menuXML.onLoad = Delegate.create(this, menuIsLoaded);
menuXML.load("menu.xml"); function menuIsLoaded():Void { for(var i = 0; i < menuXML.firstChild.childNodes.length; i++){ var tempItem: MenuItem = new MenuTem(); tempItem._x = 10; tempItem._y = 10+i*20; tempItem.setLabel(menuXML.firstChild.childNodes[i].attributes.label); tempItem.setAction(menuXML.firstChild.childNodes[i].attributes.url); menuItems.push(tempItem); } }
Далее нужен символ MenuItem, его нужно создать во Flash IDE и происвоить его полю класс MenuItem. Добавить к нему динамическое текстовое поле и в панели своуйств в поле var написать tlabel, и затем собственно написать сам класс MenuItem

Код:
 
import mx.utils.Delegate;
 
class MenuItem extends MovieClip {
private var tlabel:String; private var _action:String;
private function onLoad():Void{ this.onRollOver = Delegate.create(this, handleMouseOver); this.onRollOut = Delegate.create(this, handleMouseOut); this.onRelease= Delegate.create(this, handleMouseRelease); }
public function MenuItem(){ }
public function setLabel(inlabel:String):Void{ tlabel = inlabel; }
public function setAction(inaction:String):Void{ _action = inaction; }
private function handleMouseOver():Void{ }
private function handleMouseOut():Void{ }
private function handleMouseRelease():Void{ getURL(_action); }
}


Вроде так будет работать


Последний раз редактировалось alekslitvinenk; 11.05.2008 в 17:18.
Старый 15.04.2008, 19:38
Ведьмак вне форума Посмотреть профиль Отправить личное сообщение для Ведьмак Посетить домашнюю страницу Ведьмак Найти все сообщения от Ведьмак
  № 3  
Ответить с цитированием
Ведьмак
[+1 22.07.07]
 
Аватар для Ведьмак

Регистрация: May 2007
Адрес: Минск, Беларусь
Сообщений: 347
Отправить сообщение для Ведьмак с помощью ICQ Отправить сообщение для Ведьмак с помощью Yahoo
как-то делал такое меню с бесконечной вложенностью.. чуть не взбесился.. рекурсия в такой транс вгоняла ))

Старый 11.05.2008, 04:11
Denis Davidov вне форума Посмотреть профиль Отправить личное сообщение для Denis Davidov Найти все сообщения от Denis Davidov
  № 4  
Ответить с цитированием
Denis Davidov

Регистрация: Sep 2006
Сообщений: 89
у меня какой-то хитрый глюк, в отдельном фаиле .as прописал класс MenuItem,
но при компиляции выдает ошибку: Class may be only defined in external Action Script 2.0 script. В проекте стоит AS2 в Publish...
что это такое может быть??!!

Заранее спасибо за советы...
з.ы. у меня CS3

Старый 11.05.2008, 13:40
Denis Davidov вне форума Посмотреть профиль Отправить личное сообщение для Denis Davidov Найти все сообщения от Denis Davidov
  № 5  
Ответить с цитированием
Denis Davidov

Регистрация: Sep 2006
Сообщений: 89
нашел косяк, я дополнитлено пыталса про-include'ить .as фаил.
з.ы. в коде есть пара опечаток: attrubutes -> attributes
а так-же вроде .x -> ._x

Старый 11.05.2008, 15:08
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 6  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Ну и всякие там
Код:
  var tempItem: MenuItem = MenuItem();
Удивительно, что этот код был написан без компиляции... респект

Старый 11.05.2008, 16:50
alekslitvinenk вне форума Посмотреть профиль Отправить личное сообщение для alekslitvinenk Посетить домашнюю страницу alekslitvinenk Найти все сообщения от alekslitvinenk
  № 7  
Ответить с цитированием
alekslitvinenk
 
Аватар для alekslitvinenk

Регистрация: Oct 2005
Адрес: Москва
Сообщений: 491
Отправить сообщение для alekslitvinenk с помощью ICQ Отправить сообщение для alekslitvinenk с помощью AIM Отправить сообщение для alekslitvinenk с помощью Skype™
Сорри, за оЧепятки
Код действительно не проверял: просто побыстрому все описал, чтобы суть изложить

Старый 11.05.2008, 17:25
Denis Davidov вне форума Посмотреть профиль Отправить личное сообщение для Denis Davidov Найти все сообщения от Denis Davidov
  № 8  
Ответить с цитированием
Denis Davidov

Регистрация: Sep 2006
Сообщений: 89
Что-то у мен все равно не работает... хм
никаких ошибок при компиляции...
вроде все проще простого, скорее всего где-то в настройках флеша косяк,
плиз, посмотрите ктонибудь исходник и .as
практически сделал copy-paste, должно работать....

Спасибо
Вложения
Тип файла: rar xml.rar (18.3 Кб, 78 просмотров)


Последний раз редактировалось Denis Davidov; 11.05.2008 в 17:28.
Старый 14.05.2008, 14:23
Denis Davidov вне форума Посмотреть профиль Отправить личное сообщение для Denis Davidov Найти все сообщения от Denis Davidov
  № 9  
Ответить с цитированием
Denis Davidov

Регистрация: Sep 2006
Сообщений: 89
Хм, 5 просмотров и ни одного ответа ))

Старый 14.05.2008, 14:31
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 10  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Да хоть тысяча, вам никто не обязан отвечать.
Плюс за сообщение без смысла.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:37.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:37.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.