nd2639
08-19-2009, 02:20 PM
I am new to AS3 but I am trying to pass XMLList from one class to another class using public function get.
Below is the code I am using.
XMLContents.as
package com.ad.loading
{
/**
* ...
* @author AndyDohare
*/
//----------- Import Statements -----------\\
import com.ad.loading.LoadXML;
import flash.display.MovieClip;
import flash.events.*;
public class XMLContents extends EventDispatcher
{
//----------- Declaring Variables -----------\\
private var _xmlPath:String = "com/data/xml/tabs.xml"; //Can also pass RSS feed for e.g; "http://theflashblog.com/?feed=rss"
private var _loadXML:LoadXML;
private var _xmlLoadedData:XML;
public var _xmlMainTitle:*;
public var __xmlList:XMLList;
public var _myTabLabels:String;
public var _tabTitle:String;
//----------- Declaring Constructor Function -----------\\
public function XMLContents():void
{
_loadXML = new LoadXML(_xmlPath);
_loadXML.addEventListener("XML_LOADED", onXMLLoaded, false, 0, true);
}
private function onXMLLoaded(evt:Event):void
{
_xmlLoadedData = new XML(_loadXML.XMLdata);
__xmlList = _xmlLoadedData.children();
//trace("A.D. XMLContents -- onXMLLoaded() :: evt.target.data :: " + evt.target.data);
dispatchEvent(new Event("XML_CONTENTS"));
ParseXMLContents(__xmlList);
//trace(__xmlList);
}
public function ParseXMLContents(_xmlCont:XMLList):void
{
//_myTabLabels = _xmlCont.@label;
for (var i:int = 0; i < _xmlCont.length(); i++)
{
_myTabLabels = _xmlCont[i].attribute("label");
//__xmlList = _xmlCont[i].elements();
trace("A.D. XMLContents() : ParseXMLContents() : [" + i + "] : " + _myTabLabels);
}
}
//----------- Getters and Setters -----------\\
public function get xmlListOfAllTabs():XMLList
{
return this.__xmlList;
}
public function set xmlListOfAllTabs(__xml:XMLList):void
{
this.__xmlList = __xml;
}
public function get myTabLabels():String
{
return _myTabLabels;
}
}
}
allTabs.as
package com.ad
{
/**
* ...
* @author AndyDohare
*/
import flash.display.MovieClip
import flash.events.*;
import com.ad.myTab;
import com.events.TabEvents;
import com.ad.loading.XMLContents;
public class allTabs extends MovieClip
{
/*
* Properties
*
**/
private var _myTab :myTab;
private var _tabGaps :Number = 1;
private var _myTabText :String;
private var _myTabXPosition :Number;
private var _myTabName :String;
private var _tabClicked :String;
private var _xmlContents :XMLContents;
private var _tween :Tween;
private var _movedBoolean :Boolean = true;
/*
* Constructor Function
*
**/
public function allTabs()
{
trace("A.D. allTabs() .. Loaded .. ");
_xmlContents = new XMLContents();
_xmlContents.addEventListener(Event.COMPLETE, onCompleteXMLContents, false, 0, true);
//trace("A.D. allTabs :::: XMLContents.xmlListOfAllTabs ::::::: " + _xmlContents.xmlListOfAllTabs);
for (var i:uint = 0; i < 5; i++)
{
_myTab = new myTab("_myTab " + i);
_myTab.x = (_myTab.width + _tabGaps) * i;
_myTab.y = 0;
//_myTabXPosition = _myTab.x;
//_myTabName = _myTab.name;
//trace("XXX : " + _myTabXPosition);
//trace("XXX Name : " + _myTab.name);
addEventListener(MouseEvent.CLICK, onTabClick, false, 0, true);
addChild(_myTab);
}
}
/*
* Methods
*
**/
private function onTabClick(evt:MouseEvent):void
{
//dispatchEvent(new TabEvents(TabEvents.THIS_TAB_CLICKED));
dispatchEvent(new Event("TAB_IS_CLICKED"));
//trace("A.D. allTabs : evt.target.X : " + evt.target.x);
_tabClicked = evt.target.name;
trace("A.D. allTabs : onTabClick : _tabClicked :" + _tabClicked);
tabName(_tabClicked);
}
}
}
The problem is I get a "null" on trace.
Please ignore the extra code and thanks a lot in advance.
Andy D :eek:
Below is the code I am using.
XMLContents.as
package com.ad.loading
{
/**
* ...
* @author AndyDohare
*/
//----------- Import Statements -----------\\
import com.ad.loading.LoadXML;
import flash.display.MovieClip;
import flash.events.*;
public class XMLContents extends EventDispatcher
{
//----------- Declaring Variables -----------\\
private var _xmlPath:String = "com/data/xml/tabs.xml"; //Can also pass RSS feed for e.g; "http://theflashblog.com/?feed=rss"
private var _loadXML:LoadXML;
private var _xmlLoadedData:XML;
public var _xmlMainTitle:*;
public var __xmlList:XMLList;
public var _myTabLabels:String;
public var _tabTitle:String;
//----------- Declaring Constructor Function -----------\\
public function XMLContents():void
{
_loadXML = new LoadXML(_xmlPath);
_loadXML.addEventListener("XML_LOADED", onXMLLoaded, false, 0, true);
}
private function onXMLLoaded(evt:Event):void
{
_xmlLoadedData = new XML(_loadXML.XMLdata);
__xmlList = _xmlLoadedData.children();
//trace("A.D. XMLContents -- onXMLLoaded() :: evt.target.data :: " + evt.target.data);
dispatchEvent(new Event("XML_CONTENTS"));
ParseXMLContents(__xmlList);
//trace(__xmlList);
}
public function ParseXMLContents(_xmlCont:XMLList):void
{
//_myTabLabels = _xmlCont.@label;
for (var i:int = 0; i < _xmlCont.length(); i++)
{
_myTabLabels = _xmlCont[i].attribute("label");
//__xmlList = _xmlCont[i].elements();
trace("A.D. XMLContents() : ParseXMLContents() : [" + i + "] : " + _myTabLabels);
}
}
//----------- Getters and Setters -----------\\
public function get xmlListOfAllTabs():XMLList
{
return this.__xmlList;
}
public function set xmlListOfAllTabs(__xml:XMLList):void
{
this.__xmlList = __xml;
}
public function get myTabLabels():String
{
return _myTabLabels;
}
}
}
allTabs.as
package com.ad
{
/**
* ...
* @author AndyDohare
*/
import flash.display.MovieClip
import flash.events.*;
import com.ad.myTab;
import com.events.TabEvents;
import com.ad.loading.XMLContents;
public class allTabs extends MovieClip
{
/*
* Properties
*
**/
private var _myTab :myTab;
private var _tabGaps :Number = 1;
private var _myTabText :String;
private var _myTabXPosition :Number;
private var _myTabName :String;
private var _tabClicked :String;
private var _xmlContents :XMLContents;
private var _tween :Tween;
private var _movedBoolean :Boolean = true;
/*
* Constructor Function
*
**/
public function allTabs()
{
trace("A.D. allTabs() .. Loaded .. ");
_xmlContents = new XMLContents();
_xmlContents.addEventListener(Event.COMPLETE, onCompleteXMLContents, false, 0, true);
//trace("A.D. allTabs :::: XMLContents.xmlListOfAllTabs ::::::: " + _xmlContents.xmlListOfAllTabs);
for (var i:uint = 0; i < 5; i++)
{
_myTab = new myTab("_myTab " + i);
_myTab.x = (_myTab.width + _tabGaps) * i;
_myTab.y = 0;
//_myTabXPosition = _myTab.x;
//_myTabName = _myTab.name;
//trace("XXX : " + _myTabXPosition);
//trace("XXX Name : " + _myTab.name);
addEventListener(MouseEvent.CLICK, onTabClick, false, 0, true);
addChild(_myTab);
}
}
/*
* Methods
*
**/
private function onTabClick(evt:MouseEvent):void
{
//dispatchEvent(new TabEvents(TabEvents.THIS_TAB_CLICKED));
dispatchEvent(new Event("TAB_IS_CLICKED"));
//trace("A.D. allTabs : evt.target.X : " + evt.target.x);
_tabClicked = evt.target.name;
trace("A.D. allTabs : onTabClick : _tabClicked :" + _tabClicked);
tabName(_tabClicked);
}
}
}
The problem is I get a "null" on trace.
Please ignore the extra code and thanks a lot in advance.
Andy D :eek: