I have loaded an XML file in the class LoadXML and have here created a method which parses the data and returns various arrays: an array of background urls (i called the array: hintergrund[]), an array of image paths (pfad[]), an array of website urls (website[]) and so forth. In the main class I would now like to load the backgrounds and images. I must have made a mistake in my onBackgrLoad() because I receive the error msg:
Error #1084: Syntax error: expecting rightparen before colon.
I can´t see any paranthesis missing though… I tried also adding “e: Event” in the paranthesis of the constructor but that didnt help.
Here are the relevant sections in my Main class:
package {
import flash.display.Sprite;
import flash.net.*;
import flash.display.*;
import flash.events.*;
import flash.display.Loader;
import flash.filters.DropShadowFilter;
import flash.net.URLRequest;
import flash.text.*;
// import de.container.text.Container_Text;
// To edit dropshadow. Atm not using.
import flash.filters.BitmapFilter;
import flash.filters.BitmapFilterQuality;
public class Main extends Sprite
{
//____________________________________________________________________________Vars : Newly created
public var images : Vector.<DisplayObject>;
private var maxProducts : int;
private var loaders : Vector.<Loader> = new Vector.<Loader>();
private var loader : URLLoader = new URLLoader();
private var backgr : Bitmap;
private var img : Bitmap;
private var titel : String;
// private var textContainer : Container_Text = new Container_Text();
//____________________________________________________________________________Vars : From other classes
public var coverflow : CoverFlow;
private var bg : BG;
private var sb : ScrollPaneExample;
private var sl : ScrollLabels;
private var productSummaryLabel : ProductSummaryLabel;
// private var reflection : Reflection;
private var xmlLoad : LoadXML = new LoadXML();
private var xmlData : XML = xmlLoad.getXMLData();
private var hintergrund : Array = xmlLoad.getBackgr();
private var pfad : Array = xmlLoad.getPath();
private var numOfProducts : int = xmlLoad.numOfProducts;
private var numOfCategories : int = xmlLoad.numOfCategories;
//____________________________________________________________________________Constructor
public function Main()
{
initBG();
onBackgrLoad(e : Event);
}
//____________________________________________________________________________Methods
// Load the backgr for each image.
private function onBackgrLoad(e : Event) : void // Take away : void ?
{
// A summary should appear for each object once it is in the center
for (var i : uint = 0; i < numOfProducts; i++)
{
var backgrLoader : Loader = new Loader();
var backgrRequest : URLRequest = new URLRequest(hintergrund*);
backgrLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoad);
backgrLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, handleXMLError);
try
{
backgrLoader.load(backgrRequest);
} catch (error: ArgumentError) {
trace("An Argument Error has occurred.");
} catch (error: SecurityError) {
trace("A Security Error has occurred.");
}
// OR can use method below without needing var backgrRequest
// backgrLoader.load( new URLRequest( hintergrund* ) );
var myNewBackgr = e.target.loader; // Necessary?
// Hold the backgrs inside the Bitmap
backgr = e.target.content as Bitmap;
trace("onBackgrLoad Loop: " + i);
}
}
// Load image that will lie above backgr. When event is completed call onTextLoad().
public function onImageLoad(e : Event) : void
{
// FOR statement: summary should appear for each object once it is in the center
for (var i: uint = 0; i < numOfProducts; i++)
{
var imageLoader : Loader = new Loader();
var imageRequest : URLRequest = new URLRequest(pfad*);
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoaded); // change this to onTextLoad once method completed
imageLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, handleXMLError);
imageLoader.load(imageRequest);
var myNewImage = e.target.loader; // necessary?
// Hold the images inside the Bitmap
img = e.target.content as Bitmap;
trace("onImageLoad Loop: " + i);
}
}
And here is my LoadXML class:
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.text.*;
public class LoadXML
{
//__________________________________________________________________________XML vars
private var loader : URLLoader = new URLLoader();
private var productPath : URLRequest = new URLRequest("produkte1.xml"); // change
private var xmlData : XML = new XML();
public var numOfProducts : int;
public var numOfCategories : int;
//____________________________________________________________________________Arrays
private var kategorie : Array = new Array();
private var hintergrund : Array = new Array();
private var titel : Array = new Array();
private var pfad : Array = new Array();
private var website : Array = new Array();
private var uebersicht : Array = new Array();
//__________________________________________________________________________Constructor
// Load XML text data
public function LoadXML() : void
{
loader.addEventListener(Event.COMPLETE, extractXMLdata); // Specifies which data to load
loader.addEventListener(IOErrorEvent.IO_ERROR, handleXMLError);
try
{
loader.load(productPath);
// loader.load(new URLRequest(productPath)); // Load product URL // TWO METHODS TO DO THIS: can also use my request productInfoURL without xml blabla in constructor
trace("Step 1: Product path loaded correctly.");
trace("Product path: " + productPath);
}
catch(e : Error)
{
trace("Error loading file");
}
}
//__________________________________________________________________________Methods
private function extractXMLdata(e: Event) : void
{
// Extract data
// The reference to e.target below refers to the object that loaded the XML file.
xmlData = new XML(e.target.data);
// trace(xmlData.*); // Retrieves all the children of a node.
trace("Step 2: XML Data assigned as target data.");
ParseData(xmlData);
}
private function ParseData(dat: XML) : void
{
// Number of products
numOfProducts = xmlData.*.length();
trace("Step 3: Parsing data.");
for (var i: uint = 0; i < numOfProducts; i++)
{
kategorie* = dat.produkte.produkt.kategorie.attributes()*;
website* = dat.produkte.produkt.website.attributes()*;
uebersicht* = dat.produkte.produkt.uebersicht.text()*;
hintergrund* = dat.produkte.produkt.bild.hintergrund.attributes()*;
titel* = dat.produkte.produkt.bild.titel.text()*;
pfad* = dat.produkte.produkt.bild.pfad.attributes()*;
trace("
Data Parsed for Array " + i);
}
}
//__________________________________________________________________________________ Getters
public function getXMLData(): XML
{
return xmlData;
}
public function getCategory(): Array
{
return kategorie;
}
public function getWebsite(): Array
{
return website;
}
public function getSummary(): Array
{
return uebersicht;
}
public function getBackgr(): Array
{
return hintergrund;
}
public function getTitel(): Array
{
return titel;
}
public function getPath(): Array
{
return pfad;
}
//____________________________________________________________________________Error catching
private function handleXMLError( event:IOErrorEvent ):void
{
trace("Fehler beim Aufrufen von XML.");
}
}
}
And here my XML file:
<?xml version="1.0"?>
<!-- The line above defines version of XML that is being used and the type of encoding -->
<produkte>
<!-- Bitte trage hierunter ein wie viel Produkte höchst Sie auf die Bühne haben möchte -->
<!-- <max>5</max> -->
<!-- WEB AUFTRITT PRODUKTE -->
<produkt>
<kategorie>CNM.WebAuftritt</kategorie>
<bild>
<titel>CNM.Web.CMS</titel>
<hintergrund>P:\Orgproj\Azubis_Prakt\CNM Redesign\Dokumente und Grafiken\Cards\Hintergrund\Card_Web.png</hintergrund>
<pfad>P:\Orgproj\Azubis_Prakt\CNM Redesign\Dokumente und Grafiken\Cards\Bild\Bild1png.png</pfad>
</bild>
<website>http://www.yahoo.com</website> <!-- will be changed later once known -->
<uebersicht><![CDATA[CNM.Web bietet Ihnen Rundum-Service: Gemeinsam mit Ihnen entwickeln und realisieren wir Lösungen, die präzise auf Ihre Anforderungen abgestimmt sind. Wir begleiten die Einführung technisch und organisatorisch. Auf der Basis professioneller Enterprise-Content-Management-Systeme (ECMS) und integrierter Datenbankanwendungen (.NET und JAVA) setzen wir diese Lösungen in zeitgemäßer Technologie für Sie um. ]]></uebersicht>
</produkt>
<produkt>
<kategorie>CNM.WebAuftritt</kategorie>
<bild>
<titel>CNM.Web.AquaBrowser</titel>
<hintergrund>P:\Orgproj\Azubis_Prakt\CNM Redesign\Dokumente und Grafiken\Cards\Hintergrund\Card_Web.png</hintergrund>
<pfad>P:\Orgproj\Azubis_Prakt\CNM Redesign\Dokumente und Grafiken\Cards\Bild\Bild2png.png</pfad>
</bild>
<website>http://www.yahoo.com</website>
<uebersicht><![CDATA[CNM.Web bietet Ihnen Rundum-Service: Gemeinsam mit Ihnen entwickeln und realisieren wir Lösungen, die präzise auf Ihre Anforderungen abgestimmt sind. Wir begleiten die Einführung technisch und organisatorisch. Auf der Basis professioneller Enterprise-Content-Management-Systeme (ECMS) und integrierter Datenbankanwendungen (.NET und JAVA) setzen wir diese Lösungen in zeitgemäßer Technologie für Sie um. ]]></uebersicht>
</produkt>
<!-- commented it all out till next part is finished -->
<!-- PROZESS OPTIMIERUNG PRODUKTE -->
<produkt>
<kategorie>CNM.ProzessOptimierung</kategorie>
<bild>
<titel>CNM.PrO.CRM</titel>
<hintergrund>P:\Orgproj\Azubis_Prakt\CNM Redesign\Dokumente und Grafiken\Cards\Hintergrund\Card_Pro.png</hintergrund>
<pfad>P:\Orgproj\Azubis_Prakt\CNM Redesign\Dokumente und Grafiken\Cards\Bild\Bild3png.png</pfad>
</bild>
<website>http://www.hotmail.com</website>
<uebersicht><![CDATA[Geschäftsprozesse wirtschaftlich zu steuern und kontinuierlich zu verbessern, ist zu einem wichtigen Thema geworden. Effizienz und Effektivität sind entscheidende Stellgrößen für Ihren Erfolg. CNM.PrO. Lösungen unterstützen Ihre internen Prozesse und Arbeitsabläufe. Schulung und Beratung runden das Angebot ab.]]></uebersicht>
</produkt>
<produkt>
<kategorie>CNM.ProzessOptimierung</kategorie>
<bild>
<titel>CNM.PrO.DMS</titel>
<hintergrund>P:\Orgproj\Azubis_Prakt\CNM Redesign\Dokumente und Grafiken\Cards\Hintergrund\Card_Pro.png</hintergrund>
<pfad>P:\Orgproj\Azubis_Prakt\CNM Redesign\Dokumente und Grafiken\Cards\Bild\Bild4png.png</pfad>
</bild>
<website>http://www.hotmail.com</website>
<uebersicht><![CDATA[Geschäftsprozesse wirtschaftlich zu steuern und kontinuierlich zu verbessern, ist zu einem wichtigen Thema geworden. Effizienz und Effektivität sind entscheidende Stellgrößen für Ihren Erfolg. CNM.PrO. Lösungen unterstützen Ihre internen Prozesse und Arbeitsabläufe. Schulung und Beratung runden das Angebot ab.]]></uebersicht>
</produkt>
</produkte>