Volledige versie bekijken : If statement om selectie te lezen uit XML
leon_surfdude
%Europe/Berlin %690 %2006, 16:34
Ik ben bezig een menu in Flash te maken. In dit menu wil ik een submenu aanmaken(alles word uit XML gelezen). Nu wil ik een gedeelte uit dit XML bestand pakken door middel van een IF statement(net zoals php/MySQL). Hoe kan ik dit doen? ik heb het onderstaande stukje code waar ik het in wil plaatsen:
menuXml = new XML();
menuXml.ignoreWhite = true;
menuXml.onLoad = function(success) {
if (success) {
menuItem = this.firstChild.childNodes;
item.nextGroupID = menuItem.attributes.NextGroupID; // hier word het NextGroupID gelezen uit de XML
if (this.nextGroupID = "10") { // Hier staat de IF Statement. Als nextGroupID 10 is, moet Flash het onderstaande script uitvoeren
for (var i=0; i<menuItem.length; i++) {
item = _root.attachMovie("itemClip", "itemClip" + i, i);
item._x = 550 -100*i;
item._y = 25;
item.itemLabel.text = menuItem[i].attributes.ItemDescription;
item.myUrl = "Menuxml.asp?MID="+menuItem[i].attributes.GroupID;
item.myTarget = menuItem[i].attributes.TargetFrame;
item.onRelease = function() {
getURL(this.myUrl, this.myTarget);
}
}
}
}
}
menuXml.load("menu.xml");
// Leon
waldo_cosman
%Europe/Berlin %701 %2006, 16:50
if (this.nextGroupID == "10") --> 2 == tekens gebruiken
moonwalker
%Europe/Berlin %702 %2006, 16:52
menuXml = new XML();
menuXml.ignoreWhite = true;
menuXml.onLoad = function(success) {
if (success) {
menuItem = this.firstChild.childNodes;
item.nextGroupID = menuItem.attributes.NextGroupID; // hier word het NextGroupID gelezen uit de XML
if (this.nextGroupID == "10") {
for (var i=0; i<menuItem.length; i++) {
item = _root.attachMovie("itemClip", "itemClip" + i, i);
item._x = 550 -100*i;
item._y = 25;
item.itemLabel.text = menuItem[i].attributes.ItemDescription;
item.myUrl = "Menuxml.asp?MID="+menuItem[i].attributes.GroupID;
item.myTarget = menuItem[i].attributes.TargetFrame;
item.onRelease = function() {
getURL(this.myUrl, this.myTarget);
}
}
}
}
}
menuXml.load("menu.xml");
Gebruik == in plaats van =
mw
Edit: Net te laat. :)
leon_surfdude
%Europe/Berlin %711 %2006, 17:03
okay, dus dubbele == gebruiken. Ik heb het toegepast(en de code al iets verder ontwikkeld), maar hij pakt niet de data die ik wil hebben. Zou een van jullie er eens een blik op kunnen werpen?
de AS code:
menuXml = new XML();
menuXml.ignoreWhite = true;
menuXml.onLoad = function(success) {
if (success) {
menuItem = this.firstChild.childNodes;
item.GroupID = menuItem.attributes.GroupID;
if (this.GroupID == "10") {
for (var i=0; i<menuItem.length; i++) {
item = _root.attachMovie("itemClipGroep", "itemClipGroep" + i, i);
item._x = 550 -100*i;
item._y = 25;
item.itemLabel.text = menuItem[i].attributes.ItemDescription;
item.nextGroupID = menuItem[i].attributes.NextGroupID;
if (this.nextGroupID == "0") {
item.myUrl = "menuxml.asp?ID="+menuItem[i].attributes.PageID;
item.myTarget = menuItem[i].attributes.TargetFrame;
item.onRelease = function() {
getURL(this.myUrl, this.myTarget);
}
}
else {
}
}
}
}
}
menuXml.load("wezo.xml");
Mijn XML:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<menu mid="-1">
<menuitem ItemID="10" GroupID="-1" ItemDescription="Groep" PageID="10" TargetFrame="content" NextGroupID="10">
<menuitem ItemID="11" GroupID="10" ItemDescription="Intropagina" PageID="11" TargetFrame="content" NextGroupID="0" />
<menuitem ItemID="12" GroupID="10" ItemDescription="Algemeen" PageID="12" TargetFrame="content" NextGroupID="0" />
<menuitem ItemID="13" GroupID="10" ItemDescription="Organisatie" PageID="13" TargetFrame="content" NextGroupID="0" />
</menuitem>
<menuitem ItemID="20" GroupID="-1" ItemDescription="Industrie" PageID="20" TargetFrame="content" NextGroupID="20">
<menuitem ItemID="21" GroupID="20" ItemDescription="Verpakken/Montage" PageID="21" TargetFrame="content" NextGroupID="0" />
<menuitem ItemID="22" GroupID="20" ItemDescription="Foodpack" PageID="22" TargetFrame="content" NextGroupID="0" />
<menuitem ItemID="23" GroupID="20" ItemDescription="Metaal" PageID="23" TargetFrame="content" NextGroupID="0" />
<menuitem ItemID="24" GroupID="20" ItemDescription="Mailingservice" PageID="24" TargetFrame="content" NextGroupID="0" />
<menuitem ItemID="25" GroupID="20" ItemDescription="Post" PageID="25" TargetFrame="content" NextGroupID="0" />
</menuitem>
</menu>
moonwalker
%Europe/Berlin %712 %2006, 17:06
Je sluit de eerste If niet af en je begint al met de tweede. In je code is hij nog steeds bezig met de eerste IF statement. ;)
Tip: probeer te tracen. Krijg je veel informatie daardoor.
mw
leon_surfdude
%Europe/Berlin %722 %2006, 17:20
Ik programmeer veel PHP, daar weet ik wel te 'tracen'. Met Flash weet ik het niet... kun je me er een beetje mee helpen? :)
Alvast bedankt!
ps. ik plaats een IF binnen een IF(een paar keer zelfs...). Ik heb net de code na gelopen, en alle IF statements worden keurig afgesloten. Hier zie ik zelf geen fouten in, tenzij je in Flash geen IF binnen een IF kan plaatsen. Zoals ik al zei; ik programmeer veel PHP, en daar kan het wel.
moonwalker
%Europe/Berlin %730 %2006, 17:31
Ik programmeer ook veel in PHP. Ben net een paar maanden verdiept in Actionscript. Je zult het wel onder de knie krijgen. ;)
Tracen gebruik je met de functie Trace. Dus bijvoorbeeld: trace(item.myUrl). Als je een bericht wilt tracen dan gebruik je dit trace("jou bericht"). Het eerste is vooral voor gebruik bij variabelen en dergelijke...;) Check de hulpfucntie voor trace! ;)
Pas als je dat hebt gedaan dan kun je zien of je wel info ontvangt of niet en waar het fout begint te lopen.
Succes.
mw
Edit: Ik zal later naar je code kijken. Ik ga nu weg van werk naar training. Ben pas rond 22:00 thuis, dus je zult morgen wel van me horen als niemand anders je heeft geholpen in die tijd. :)
leon_surfdude
%Europe/Berlin %749 %2006, 17:58
Okay, ik ben er achter waarom Flash mijn gevraagde data niet wil weergeven. Dit komt omdat de menuItems die ik wil weergeven nog binnen de eerste menuItem staan(in XML). De eerste menuItems worden wel weergegeven, maar degenen die erbinnen staan dus niet.
Voor dit menu bestaat niet de mogelijkheid om de XML structuur aan te passen, ivm het CMS wat eraan is gekoppeld(deze exporteerd de XML op deze manier). Is er een mogelijkheid om de menuItems(submenu's) toch goed uit te lezen, zonder de XML structuur aan te passen?
@moonwalker: Het tracen is gelukt! Whoo... :D
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.