برگزیده های پرشین تولز

ٍXML/ Action script

Manly_Rira

کاربر تازه وارد
تاریخ عضویت
19 سپتامبر 2005
نوشته‌ها
1
لایک‌ها
0
سلام دوستان
من يك سوال فوري دارم! من يك اينترفس(interface or navigation system) توي فلاش ام اكس ساختم. اين صفحه تشكليل شده اس منو ( menu) هاي مختلف با موضوعات مختلف. كد هاي ساختاري و متود هاي اين صفخه در actionscript نوشته شده و تكس و محل هر منو از طريق XML وارد صفحه ميشود.
حالا مشكل اين است كه من ميخواهم براي هر منو با موضوع مشخص رنگي متفاوت تعيين كنم و ترجيج ميدهم كه اين كار در XML انجام شود چراكه منو بار قرار است بسيار بزرگ شود كه database به ان وصل است. و من ميخواهم از فلش فقط براي style استفاده كنم.

اين زير اول action script code و بعد XML code را ميزنم. البته تعجب نكنيد كه كلمات عجيب غريب ميبينيد.چون كار داره به زبان غير ايراني نوشته ميشود.

خوشحال مي شوم اگر كمك كنيد.


GenerateMenu = function (container, name, x, y, depth, xml_element)
{
var akt_element;
var akt_eintrag;var akt_menu = container.createEmptyMovieClip(name, depth);
for (var i = 0; i<xml_element.childNodes.length; i++)
{
akt_eintrag = akt_menu.attachMovie("menueintrag", "eintrag"+i+"_mc", i);
akt_eintrag._x = x;
akt_eintrag._y = y+i*akt_eintrag._height;
akt_eintrag.trackAsMenu = true;
var col = new Color(akt_eintrag.hintergrund);
col.setTransform({ra:100, rb:0, ga:50, gb:0, ba:0, bb:0});
akt_element = xml_element.childNodes;
akt_eintrag.aktion = akt_element.attributes.aktion;
akt_eintrag.variables = akt_element.attributes.variables;
akt_eintrag.name.text = akt_element.attributes.name;
if (xml_element.childNodes.nodeName == "menu")
{
akt_eintrag.pfeil._visible = false;
akt_eintrag._x = x+i*akt_eintrag._width;
akt_eintrag._y = y;
akt_eintrag.xml_element = akt_element;
akt_eintrag.onRollOver = akt_eintrag.onDragOver=function () {
var x = this._x;
var y = this._y+this._height;
GenerateMenu(akt_menu, "submenu_mc", x, y, 1000, this.xml_element);
var col = new Color(this.hintergrund);
col.setTransform({ra:100, rb:0, ga:50, gb:50, ba:0, bb:0})
;}
;}
else if (xml_element.childNodes.nodeName == "submenu") {
akt_eintrag._x = x;
akt_eintrag._y = y+i*akt_eintrag._height;
akt_eintrag.xml_element = akt_element;
akt_eintrag.onRollOver = akt_eintrag.onDragOver=function ()
{
var x = this._x+this._width;var y = this._y;
GenerateMenu(akt_menu, "submenu_mc", x, y, 1000, this.xml_element);
var col = new Color(this.hintergrund);col.setTransform(
{ra:100, rb:0, ga:50, gb:50, ba:0, bb:0})
;};}
else {akt_eintrag.pfeil._visible = false;
akt_eintrag.onRollOver = akt_eintrag.onDragOver=function () {
akt_menu.submenu_mc.removeMovieClip();
var col = new Color(this.hintergrund);
col.setTransform({ra:100, rb:0, ga:50, gb:50, ba:0, bb:0})
;};}
akt_eintrag.onRollOut = akt_eintrag.onDragOut=function () {
var col = new Color(this.hintergrund);
col.setTransform({ra:100, rb:0, ga:50, gb:0, ba:0, bb:0})
;};
akt_eintrag.onRelease = function() {
Aktionen[this.aktion](this.variables);CloseSubmenus();
};}};
// Hauptmenü erzeugen
CreateMainMenu = function (x, y, depth, menu_xml) {
GenerateMenu(this, "mainmenu_mc", x, y, depth, menu_xml.firstChild);
mainmenu_mc.onMouseUp = function() {
if (mainmenu_mc.submenu_mc && !mainmenu_mc.hitTest(_root._xmouse, _root._ymouse, true)) {
CloseSubmenus();
}};};
// Sämtliche Untermenüs entfernen, falls welche im Hauptmenü existieren
CloseSubmenus = function () { mainmenu_mc.submenu_mc.removeMovieClip();
};
// Objekt verwaltet die Aktionen die den jeweiligen Einträgen
// innerhalb der XML-Struktur zugewiesen wurden.
Aktionen = new Object();
Aktionen.message = function(msg) {
ausgabe_txt.text = msg;
};
//Aktionen.getfile = function(fileVar) {
//load(fileVar, "_blank");
//};
Aktionen.gotoURL = function(urlVar) {
getURL(urlVar, "_blank");
};
Aktionen.newMenu = function(menuxml) {
menu_xml.load(menuxml);
};
Aktionen.setColor= function(color) {

};
// XML-Laden und anschliessend Hauptmenü ausführen
menu_xml = new XML();
menu_xml.ignoreWhite = true;
menu_xml.onLoad = function(status) {
if (status) {
CreateMainMenu(10, 10, 0, this);
ausgabe_txt.text = "Daten geladen...";
} else {
ausgabe_txt.text = "Fehler: Daten konnten nicht geladen werden!";
}
};
// Erstes Menü laden
menu_xml.load("menu1.xml");







<?xml version="1.0"?>
<menu name="beispiel">
<menu name="Cultuur" aktion="message" variables="Menü 1 Text...">
<submenu name="Bioscoop">
<eintrag name="Pathe" aktion="message"/>
<eintrag name="FilmHuis"/>
</submenu>
<submenu name="Teather">
<eintrag name="Staatschowburg"/>
</submenu>
<submenu name="Kerk">
<submenu name="Katoliek">
<eintrag name="Zuidoost"/>
</submenu>
<submenu name="protestan">
<eintrag name="Zuidoost"/>
</submenu>
</submenu>
</menu>
<menu name="Welzijn">
<eintrag name="ZiekenHuis"/>
<eintrag name="Tandarts"/>
<eintrag name="Bejardenhuis"/>
</menu>
<menu name="Onderwijs">
<submenu name="Basisschool">
<eintrag name="Werkplaats" aktion="message" variables="Teil 1.1"/>

</submenu>
<submenu name="Middelbareschool">
<eintrag name="lablablab" aktion="message" variables="Teil 2.2"/>

</submenu>

</menu>
<menu name="Verkeer">
<submenu name="Openbarevervooer">
<eintrag name="Bus" aktion="message" variables="Teil 1.1"/>
<eintrag name="Trein" aktion="message" variables="Teil 1.2"/>
<eintrag name="Tram" aktion="message" variables="Teil 1.3"/>
<eintrag name="Metro" aktion="message" variables="Teil 1.3"/>
</submenu>
<submenu name="routebeschrijving">

<eintrag name="ANWB" aktion="message" variables="Teil 2.2"/>
<eintrag name="Fietsroute" aktion="message" variables="Teil 2.3"/>
<eintrag name="Auto" aktion="message" variables="Teil 2.3"/>
</submenu>

</menu>
<menu name="Extra">
<eintrag name="Hauptmenü" aktion="newMenu" variables="menu1.xml"/>
<eintrag name="Links" aktion="newMenu" variables="menu2.xml"/>
<eintrag name="Nachrichten" aktion="newMenu" variables="menu3.xml"/>
</menu>
</menu>
 
بالا