I have two classes: one creates and loades a combobox and another class that creates and loads an UILoader .
They both work independently.
In these classes below I have the args in the UILoader class hard coded and they work.
The CBMajorComponent class should pass the fileName and the Key var’s as args.
If I try to pass the args from the CBMajorComponent class everything works under the hood but there are no images displayed in the mcContent.
Is there a reason for this?
Thanks
This is in the actions frame in the .fla
import flash.display.MovieClip;
import chromatic.load_files.UIImageComponent;
import chromatic.load_files.TLImageComponent;
import chromatic.load_files.CBMajorComponent;
import chromatic.load_files.CBMinorComponent;
var uiImageComponent:UIImageComponent=new UIImageComponent();
var tlImageComponent:TLImageComponent=new TLImageComponent();
var cbMajorComponent:CBMajorComponent=new CBMajorComponent();
var cbMinorComponent:CBMinorComponent=new CBMinorComponent();
cbMajorComponent=new CBMajorComponent();
addChild(cbMajorComponent.cbMajor);
cbMinorComponent=new CBMinorComponent();
addChild(cbMinorComponent.cbMinor);
uiImageComponent=new UIImageComponent();
mcContent.addChild(uiImageComponent.uiImage);
tlImageComponent=new TLImageComponent();
mcContent.addChild(tlImageComponent.tlImage);
package chromatic.load_files{
import fl.controls.ComboBox;
import flash.display.MovieClip;
import flash.events.Event;
import fl.data.DataProvider;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.URLRequest;
import fl.containers.UILoader;
public class CBMajorComponent extends MovieClip {
public var cbMajor:ComboBox=new ComboBox();
private var uiImageComponent:UIImageComponent;
private var listURL:URLRequest=new URLRequest();
private var dataLoader:URLLoader=new URLLoader();
private var theXML:XML=new XML();
private var arrayFile:Array=new Array("load_assets/keylist.xml");
private var majorArray:Array=new Array("CMajor","GMajor","DMajor","AMajor","EMajor",
"BMajor","FSharpMajor","CSharpMajor","FMajor",
"BFlatMajor","EFlatMajor","AFlatMajor",
"DFlatMajor","GFlatMajor","CFlatMajor");
public var key:String;
public var fileName:String;
private var evtIndex:Number;
private var evtItem:String;
private var sel:Number=-1;
public var testString:String;
public function CBMajorComponent():void {
init();
}
private function init():void {
fileName=arrayFile[0];
setFileName(fileName);
setupComponent(fileName);
}
private function setupComponent(fileName):void {
this.fileName=fileName;
cbMajor=new ComboBox();
cbMajor.setSize(200, 22);
cbMajor.prompt = "Select a Major Key";
cbMajor.editable=false;
cbMajor.rowCount=15;
cbMajor.width=110;
cbMajor.move(0,0);
cbMajor.x=-235;
cbMajor.y=-150;
addChild(cbMajor);
listURL=new URLRequest(fileName);
dataLoader.addEventListener(Event.COMPLETE,dataLoaded);
dataLoader.load(listURL);
theXML=new XML(listURL);
theXML.ignoreWhitespace=true;
cbMajor.addEventListener(Event.CHANGE, selectedName);
cbMajor.addEventListener(Event.CHANGE,changeEvent);
}
private function dataLoaded(evt:Event):void {
theXML=XML(dataLoader.data);
for (var i:int=0; i<majorArray.length; i++) {
key=majorArray*;
cbMajor.addItem({label:(theXML.key[key].keyName)});
}
}
private function selectedName(evt:Event):void {
evtIndex=evt.target.selectedIndex;
key=majorArray[evtIndex];
setKey(key);
testString="passed froim cbMajor to uiComponent";
uiImageComponent=new UIImageComponent();
uiImageComponent.init();
}
public function changeEvent(evt:Event):void {
trace(" You selected a key");
}
public function setFileName(fileName):void {
this.fileName=fileName;
}
public function getFileName():String {
return fileName;
}
public function setKey(key):void {
this.key=key;
}
public function getKey():String {
return key;
}
}
}
package chromatic.load_files{
import fl.containers.UILoader;
import flash.display.MovieClip;
import flash.events.Event;
import fl.data.DataProvider;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.*;
public class UIImageComponent extends MovieClip {
public var uiImage:UILoader=new UILoader();
public var dp:DataProvider=new DataProvider();
private var dataLoader:URLLoader=new URLLoader();
private var theXML:XML=new XML();
private var listURL:URLRequest=new URLRequest();
private var arrayImage:Array=new Array();
private var singleImage:String;
public var key:String;
public var fileName:String;
private var sourceValue:String=null;
private var evtIndex:int;
private var evtName:String;
private var sel:Number=-1;
private var xmlList:XMLList;
public var testString:String;
public function UIImageComponent():void {
init()
}
public function init():void {
fileName="load_assets/keylist.xml";
key="CMajor";
this.fileName=fileName;
this.key=key;
this.testString=testString;
setfileName(fileName);
setKey(key);
trace("ui...filename "+fileName);
setupComponent(fileName,key); }
public function setupComponent(fileName,key):void {
this.fileName=fileName;
this.key=key;
this.testString=testString;
//var mcContent=new MovieClip();
trace(testString);
uiImage.x=100;
uiImage.y=-20;
uiImage.width=190;
uiImage.height=200;
//addChild(mcContent);
//mcContent.addChild(uiImage);
listURL=new URLRequest(fileName);
dataLoader.addEventListener(Event.COMPLETE,dataLoaded);
dataLoader.load(listURL);
theXML=new XML(listURL);
theXML.ignoreWhitespace=true;
//dataLoader.addEventListener(Event.COMPLETE,dataLoaded);
//uiImage.addEventListener(Event.CHANGE, selectedName);
//uiImage.addEventListener(Event.CHANGE,changeEvent);
//uiImage.addEventListener(Event.COMPLETE,doTrace);
//uiImage.addEventListener(Event.RESIZE,doTrace);
}
function dataLoaded(evt:Event):void {
theXML=XML(dataLoader.data);
//key="CMajor";
sourceValue=theXML.key[key].swfFile;
var request:URLRequest=new URLRequest(sourceValue);
//uiImage.addEventListener(Event.COMPLETE,loadComplete);
uiImage.load(request);
trace("///// ui key "+sourceValue+" //////////////////");
uiImage.source=sourceValue;
}
/*
private function selectedName():void {
/*Combobox evt.target.setupComponent cannot have spaces (as we have).So until
* I learn how to rid a string of spaces thus the var key
*/
/*this bloct to be replaced by an hotspot event
uiImageComponent=new UIImageComponent
key=concatArray[evtIndex];
uiImageComponent.setfileName(this.fileName);
uiImageComponent.setkey(this.key);
uiImageComponent();
}
private function doTrace(evt:Event):void {
trace(uiImage.width);
uiImage.scaleContent=true;
uiImage.maintainAspectRatio=false;
}
*/
private function changeEvent(evt:Event):void {
trace(" You selected a key");
}
public function setfileName(fileName):void {
this.fileName=fileName;
}
public function getfileName():String {
return fileName;
}
public function setKey(key):void {
this.key=key;
}
public function getKey():String {
return key;
}
}
}
//dataLoader.addEventListener(Event.COMPLETE,dataLoaded);
//uiImage.addEventListener(Event.CHANGE, selectedName);
//uiImage.addEventListener(Event.CHANGE,changeEvent);
//uiImage.addEventListener(Event.COMPLETE,doTrace);
//uiImage.addEventListener(Event.RESIZE,doTrace);