I have a function videoList which I want to sort through my video URL’s in my XML, using a switch/case method. The for loop in each case is bringing back all videos in the XML. How can I get just the videos for a particular case?
Example: Introduction has one video, Our Work has none and Our Services has 5.
//part of the XML
...
<pages>
<page>
<categoryName>Introduction</categoryName>
<pageName>Animated Logo</pageName>
<type>Static</type>
<order>1-1</order>
<content>
<flashId>webriver-anilogo</flashId>
</content>
</page>
<page>
<categoryName>Introduction</categoryName>
<pageName>Welcome Video</pageName>
<type>Video</type>
<order>1-2</order>
<content>
<loadUrl>http://pegasus.dev.webriverinteractive.com/API/Resource.ashx?ResourceID=72</loadUrl>
</content>
</page>
<page>
<categoryName>Our Work</categoryName>
<pageName>We Make It So</pageName>
<type>Static</type>
<order>2-1</order>
<content>
<flashId>webriver-makeitso</flashId>
</content>
</page>
<page>
<categoryName>Our Services</categoryName>
<pageName>Application Development</pageName>
<type>Video</type>
<order>3-1</order>
<content>
<loadUrl>http://pegasus.dev.webriverinteractive.com/API/Resource.ashx?ResourceID=73</loadUrl>
</content>
</page>
<page>
<categoryName>Our Services</categoryName>
<pageName>Project Planning</pageName>
<type>Video</type>
<order>3-2</order>
<content>
<loadUrl>http://pegasus.dev.webriverinteractive.com/API/Resource.ashx?ResourceID=71</loadUrl>
</content>
</page>
<page>
<categoryName>Our Services</categoryName>
<pageName>Systems Integration</pageName>
<type>Video</type>
<order>3-3</order>
<content>
<loadUrl>http://pegasus.dev.webriverinteractive.com/API/Resource.ashx?ResourceID=74</loadUrl>
</content>
</page>
<page>
<categoryName>Our Services</categoryName>
<pageName>Web Design</pageName>
<type>Video</type>
<order>3-4</order>
<content>
<loadUrl>http://pegasus.dev.webriverinteractive.com/API/Resource.ashx?ResourceID=72</loadUrl>
</content>
</page>
<page>
<categoryName>Our Services</categoryName>
<pageName>Web Hosting</pageName>
<type>Video</type>
<order>3-5</order>
<content>
<loadUrl>http://pegasus.dev.webriverinteractive.com/API/Resource.ashx?ResourceID=71</loadUrl>
</content>
</page>
...
my flash code
//put button names from XML into an array
var categoryNames:Array;
//create menu
function createMenu():void {
//get info
for each (var node:XML in navData) {
//trace(node.name.toString());
infoName=node.info.name.toString();
infoClient=node.info.client.toString();
infoCreator=node.info.creator.toString();
//
infoContactCompany=node.info.contactCompany.toString();
infoContactName=node.info.contactName.toString();
infoContactEmail=node.info.contactEmail.toString();
//
infoSalesName=node.info.salesName.toString();
infoSalesEmail=node.info.salesEmail.toString();
infoSalesPhone=node.info.salesPhone.toString();
//place text in text fields
pname.text=infoName;
client.text=infoClient;
creator.text=infoCreator;
}
//Determine unique category names
categoryNames=[];
var categories:XMLList=navData..categoryName;
for (var i:int = 0; i < categories.length(); i++) {
var categoryName:String=categories*;
if (categoryNames.indexOf(categoryName)==-1) {
categoryNames.push(categoryName);
}
}
// Build menu based on categories
for (i = 0; i < categoryNames.length; i++) {
//trace("Top level:", categoryNames*);
var pages:XMLList = navData..page.(categoryName == categoryNames*);
for (var p:int = 0; p < pages.length(); p++) {
//trace(" -> Subpage: "+ pages[p].pageName +" : "+ pages[p].type);
}
buildButtons(categoryNames*, pages.pageName);
videoList(categoryNames*, pages.content.loadUrl);
}
}
var vidSource:String;
var videoPaths:Array = new Array();
var vidCounter:int = 0;
function videoList(categoryName:String, loadUrls:XMLList):void {
var i:int;
switch(categoryName) {
case "Introduction":
for (i = 0; i < loadUrls.length(); i++) {
//trace(loadUrls*);//vidSource URL's
videoPaths.push(loadUrls*);
}
break;
case "Our Work":
for (i = 0; i < loadUrls.length(); i++) {
//trace(loadUrls*);//vidSource URL's
videoPaths.push(loadUrls*);
}
break;
case "Our Services":
for (i = 0; i < loadUrls.length(); i++) {
//trace(loadUrls*);//vidSource URL's
videoPaths.push(loadUrls*);
}
break;
case "Our Clients":
for (i = 0; i < loadUrls.length(); i++) {
//trace(loadUrls*);//vidSource URL's
videoPaths.push(loadUrls*);
}
break;
case "About Us":
for (i = 0; i < loadUrls.length(); i++) {
//trace(loadUrls*);//vidSource URL's
videoPaths.push(loadUrls*);
}
break;
case "Conclusion":
for (i = 0; i < loadUrls.length(); i++) {
//trace(loadUrls*);//vidSource URL's
videoPaths.push(loadUrls*);
}
break;
}
}
// Set the function for what happens when that button gets clicked
function clipClick(e:Event):void {
//outText.text=e.target.clickToPage;
switch(e.target.clickToPage) {
case "Introduction":
if(vidPlaying == "false"){
stream_ns.close();
playNextVideo(vidSource)
}else{
playVideos(vidSource);
}
container.visible=true;
break;
//
case "Our Work":
if(vidPlaying == "false"){
stream_ns.close();
playNextVideo(vidSource)
}else{
playVideos(vidSource);
}
container.visible=true;
break;
//
case "Our Services":
if(vidPlaying == "false"){
stream_ns.close();
playNextVideo(vidSource)
}else{
playVideos(vidSource);
}
container.visible=true;
break;
//
case "Our Clients":
if(vidPlaying == "false"){
stream_ns.close();
playNextVideo(vidSource)
}else{
playVideos(vidSource);
}
container.visible=true;
break;
//
case "About Us":
if(vidPlaying == "false"){
stream_ns.close();
playNextVideo(vidSource)
}else{
playVideos(vidSource);
}
container.visible=true;
break;
//
case "Conclusion":
if(vidPlaying == "false"){
stream_ns.close();
playNextVideo(vidSource)
}else{
playVideos(vidSource);
}
container.visible=true;
break;
}
}
function playVideos(vidSource):void {
stream_ns.close();
//trace(vidSource);
vidSource = String(videoPaths[vidCounter]);
trace("video currently playing :", vidSource);
outText.appendText("
"+ vidSource);
//play first video
stream_ns.play(vidSource);
}
function playNextVideo(vidSource):void {
vidSource = String(videoPaths[vidCounter]);
trace("video currently playing :", vidSource);
outText.appendText("
"+ vidSource);
//play next video
stream_ns.play(vidSource);
}