Hey you guys, I have a problem that I just can’t seem to figure out. I have a menu that is fed by an XML with 4 categories. I can’t seem to split the categories in their respective field (they all show up in every field)
Here’s the XML:
<menu>
<category>
<titre>Oeufs</titre>
<item>
<name_fr>2 oeufs, jamboné, saucisses ou bacon</name_fr>
<name_en>2 eggs, jamboné, saucisses ou bacon</name_en>
<price1>18.49 $</price1>
<price2>18.49 $</price2>
</item>
<item>
<name_fr>1 oeuf, jambon, saucisses ou bacon</name_fr>
<name_en>1 eggs, jambon, saucisses ou bacon</name_en>
<price1>0.29 $</price1>
<price2>18.49 $</price2>
<drink>1</drink>
</item>
<item>
<name_fr>Extra Fèves au lard</name_fr>
<name_en>Extra Fèves au lard</name_en>
<price1>0.29 $</price1>
<price2>18.49 $</price2>
</item>
<item>
<name_fr>Extra creton</name_fr>
<name_en>Extra creton</name_en>
<price1>0.29 $</price1>
<price2>18.49 $</price2>
</item>
</category>
<category>
<titre>Oeufs-Matin</titre>
<item>
<name_fr>Muffin anglais, saucisse ou bacon</name_fr>
<name_en>Muffin anglais, saucisse ou bacon</name_en>
<price1>2.49 $</price1>
<price2>3.09 $</price2>
</item>
<item>
<name_fr>Bagel nature, saucisse ou bacon</name_fr>
<name_en>Bagel nature, saucisse ou bacon</name_en>
<price1>2.49 $</price1>
<price2>3.09 $</price2>
</item>
</category>
<category>
<titre>Boissons</titre>
<item>
<name_fr>Cafe</name_fr>
<name_en>coffee</name_en>
<price1>0.99 $</price1>
<price2>1.29 $</price2>
<price3></price3>
</item>
<item>
<name_fr>Chocolat Chaud</name_fr>
<name_en>Hot chocolate</name_en>
<price1>1.19 $</price1>
<price2>1.49 $</price2>
<price3>1.79 $</price3>
<show>True</show>
</item>
<item>
<name_fr>Thé, tisane</name_fr>
<name_en>Tea, infusion</name_en>
<price1>0.99 $</price1>
<price2>1.29 $</price2>
<price3></price3>
</item>
</category>
<category>
<titre>Autres</titre>
<item>
<name_fr>Croissant nature</name_fr>
<name_en>Croissant nature</name_en>
<price1>0.99 $</price1>
<price2>1.59 $</price2>
</item>
<item>
<name_fr>bagel et beurre</name_fr>
<name_en>bagel et beurre</name_en>
<price1>0.99 $</price1>
<price2>1.59 $</price2>
</item>
<item>
<name_fr>bagel avec fromage à la crème</name_fr>
<name_en>bagel avec fromage à la crème</name_en>
<price1>1.79 $</price1>
<price2>2.39 $</price2>
</item>
<item>
<name_fr>bagel avec fromage à la crème</name_fr>
<name_en>bagel avec fromage à la crème</name_en>
<price1>1.79 $</price1>
<price2>2.39 $</price2>
<show>True</show>
</item>
<item>
<name_fr>bagel avec fromage à la crème</name_fr>
<name_en>bagel avec fromage à la crème</name_en>
<price1>1.79 $</price1>
<price2>2.39 $</price2>
</item>
<item>
<name_fr>bagel avec fromage à la crème</name_fr>
<name_en>bagel avec fromage à la crème</name_en>
<price1>1.79 $</price1>
<price2>2.39 $</price2>
</item>
<item>
<name_fr></name_fr>
<name_en></name_en>
<price1></price1>
<price2></price2>
</item>
<item>
<name_fr></name_fr>
<name_en></name_en>
<price1></price1>
<price2></price2>
</item>
</category>
<category>
<titre>custom_items</titre>
<item>
<name_fr>Muffin anglais, saucisse ou bacon</name_fr>
<name_en>English muffin, sausage or bacon</name_en>
<price1>0.99 $</price1>
<drink>0</drink>
</item>
<item>
<name_fr>bagel et beurre</name_fr>
<name_en>bagel et beurre</name_en>
<price1>0.99 $</price1>
<drink>1</drink>
</item>
<item>
<name_fr>bagel avec fromage à la crème</name_fr>
<name_en>bagel avec fromage à la crème</name_en>
<price1>1.79 $</price1>
<drink>1</drink>
</item>
</category>
<Bilingual>False</Bilingual>
</menu>
Sorry if its long. And here is my Script:
import flash.display.MovieClip;
import flash.text.TextField;
import flash.net.*;
import flash.text.*;
stop();
var xmlFileName:String = "data.xml";
var lang:String = "fren";
init();
function init():void
{
if (root.loaderInfo.parameters.url != undefined)
{
xmlFileName = root.loaderInfo.parameters.url;
}
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, loadXML);
loader.load(new URLRequest(xmlFileName));
mc_f_non_egg.visible = false;
mc_f_egg.visible = false;
mc_bi_non_egg.visible = false;
mc_bi_egg.visible = false;
animation.fr.visible = false;
animation.en.visible = false;
}
function loadXML(e:Event):void
{
//trace("load data");
var xml = new XML(e.target.data);
var Bilingual = xml.Bilingual.text();
lang = Bilingual;
var showegg:Boolean = eggShow(xml);
if (lang == "False")
{
animation.fr.visible = true;
if (showegg)
{
mc_f_egg.visible = true;
displayMenu(xml,mc_f_egg,showegg);
}
else
{
mc_f_non_egg.visible = true;
displayMenu(xml,mc_f_non_egg,showegg);
}
trace("fr");
}
else
{
animation.en.visible = true;
if (showegg)
{
mc_bi_egg.visible = true;
displayMenu(xml,mc_bi_egg,showegg,lang);
}
else
{
mc_bi_non_egg.visible = true;
displayMenu(xml,mc_bi_non_egg,showegg,lang);
}
trace("en");
}
}
function displayMenu(xml:XML,mc:MovieClip,isEgg:Boolean, langSet:String = "fr")
{
if (isEgg)
{
showCategory(xml, "Oeufs", langSet, 4, mc.oeufs_txt);
if (langSet != "fr"){
showCategory(xml, "Boissons",langSet,-7, mc.boissons_txt,1);
}else{
showCategory(xml, "Boissons",langSet,4, mc.boissons_txt,3);
}
}
else
{
showCategory(xml, "Boissons",langSet,4, mc.boissons_txt);
}
showCategory(xml, "Oeufs-matin",langSet,4, mc.oeufsmatin_txt);
showCategory(xml, "Autres",langSet,0, mc.autres_txt, 1);
showCategory(xml, "custom_items",langSet,0, mc.cassecroute_txt, 2);
}
function eggShow(xml:XML)
{
var category:XML = findCategory(xml,"Oeufs");
if (category == null || xml.category[0].item.length() == 0)
{
trace("non egg");
return false;
}
else
{
trace("egg");
return true;
}
}
function showCategory(xml:XML, name:String, langSet:String ,space_adjust:Number, descriptionsField:TextField, option_sl:int = 0 )
{
var category:XML = findCategory(xml,name);
if (category != null)
{
var mc:empty_mc = new empty_mc();
addChild(mc);
mc.x = descriptionsField.x;
mc.y = descriptionsField.y;
for each (var menuItem:XML in xml.category.item)
{
if (menuItem.name_fr != "")
{
var item;
if (option_sl == 1)
{
item = new text_long_item();
}
else if (option_sl == 2)
{
item = new text_sshort_item();
}
else if (option_sl == 3)
{
item = new text_short_item_drink();
}
else if (option_sl == 4)
{
item = new text_long_item_drink();
}
else
{
item = new text_short_item();
}
if (mc.height != 0)
{
item.y = mc.height + space_adjust;
}
else
{
item.y = mc.height;
}
item.txt_fr.text = menuItem.name_fr;
item.txt_fr..autoSize=TextFieldAutoSize.LEFT;
item.txt_price1.text = menuItem.price1;
item.txt_fr.x = 0;
item.txt_price1.y = item.txt_fr.y + item.txt_fr.height - item.txt_price1.height;
if (option_sl == 3 || option_sl == 4)
{
item.txt_price3.text = menuItem.price3;
}
if (option_sl != 2)
{
item.txt_price2.text = menuItem.price2;
item.txt_price2.y = item.txt_price1.y;
}else {
item.txt_price1.autoSize = TextFieldAutoSize.RIGHT;
if (menuItem.drink == 1)
{
//condition to visible or not
item.icon_drink.visible = true;
item.icon_drink.y = item.txt_price1.y + 5;
item.icon_drink.x = item.txt_price1.x - item.icon_drink.width;
}
else
{
item.icon_drink.y = 0;
item.icon_drink.x = 0;
item.icon_drink.visible = false;
}
}
if (langSet != "fr")
{
item.txt_eng.text = menuItem.name_fr;
item.txt_eng.y = item.txt_fr.height - 5;
if (option_sl == 2){
item.snack_line.y = item.txt_eng.y + item.txt_eng.height;
}
}
else
{
item.txt_eng.text = "";
item.txt_eng.y = 0;
if (option_sl == 2){
item.snack_line.y = item.txt_fr.y + item.txt_fr.height;
}
}
mc.addChild(item);
}
}
}
}
function findCategory(xml:XML, name:String)
{
for each (var categoryElement:XML in xml.category.titre)
{
if (categoryElement == name)
{
return categoryElement;
}
}
return null;
}
I will be truly grateful to anyone who can help. Thanks in advance