Hi guys.
I have to separate classes, on for a header image and the other for a navigation bar. When the user clicks a specific button on the navigation bar, I would like the images in the header to change accordingly. Here is the code:
HeaderClass.as
package com.bethroi
{
import flash.display.*;
import flash.net.*;
import flash.events.*;
import caurina.transitions.*;
import flash.utils.Timer;
import com.bethroi.NavClass;
public class HeaderClass extends Sprite
{
private var xml:XML;
private var xmlList:XMLList;
private var xmlLoader:URLLoader;
private var imageLoader:Loader;
public var child1:String;
public var child2:String;
private var headerImages:HeaderImages;
private var logoClip:LogoClip;
private var exLoader:ExLoader;
public var childRequest:URLRequest;
public var whichChild:String;
public function HeaderClass()
{
xmlLoader = new URLLoader();
init();
//trace(child1);
headerImages = new HeaderImages();
headerImages.x = 0;
headerImages.y = -500;
addChild(headerImages);
Tweener.addTween(headerImages,{x:0, y:-350, time:2});
logoClip = new LogoClip();
logoClip.alpha = 0;
logoClip.x = -230;
headerImages.addChild(logoClip);
Tweener.addTween(logoClip,{alpha:1, time:2});
}
private function init():void
{
xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
try
{
xmlLoader.load(new URLRequest("data/header.xml"));
}
catch(error:Error)
{
trace("Error loading XML File");
}
}
public function xmlLoaded(event:Event):void
{
xml = XML(event.target.data);
xmlList = xml.children();
child1 = xmlList[0].attribute("source");
child2 = xmlList[1].attribute("source");
imageLoader = new Loader();
loadRequest(child1);
imageLoader.x = headerImages.x - 372;
imageLoader.y = -82;
imageLoader.alpha = 0;
headerImages.addChild(imageLoader);
headerImages.setChildIndex(imageLoader,1);
exLoader = new ExLoader();
headerImages.addChild(exLoader);
imageLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
}
private function loadProgress(event:ProgressEvent):void
{
var percent:Number = Math.round((event.bytesLoaded/event.bytesTotal)*100);
exLoader.loaderTxt.text = String(percent);
}
private function loadComplete(event:Event):void
{
exLoader.visible = false;
Tweener.addTween(imageLoader,{alpha:1,time:1});
//Tweener.addTween(imageLoader,{_brightness:10,time:1});
}
public function loadRequest(whichChild:String):void
{
childRequest = new URLRequest(whichChild);
imageLoader.load(childRequest);
//trace(navClass.clickCheck);
trace(whichChild);
}
}
}
NavClass.as
package com.bethroi
{
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import caurina.transitions.*;
import com.bethroi.HeaderClass;
public class NavClass extends Sprite
{
private var navBar:NavBar;
private var buttonArray:Array = ["HOME", "ABOUT US", "TESTIMONIAL", "GALLERY", "CONTACT US"];
private var urlArray:Array = ["child1", "child2", "TESTIMONIAL", "GALLERY", "CONTACT US"];
private var temp:DisplayObject;
private var buttonHolder:ButtonHolder;
private var buttonClip:MovieClip;
public var clickCheck:String;
private var headerClass:HeaderClass = new HeaderClass();
private var ellipseSprite:Sprite;
private var ellipseGlowFilter:GlowFilter;
private var ellipseBlurFilter:BlurFilter;
public function NavClass()
{
navBar = new NavBar();
navBar.x = 0;
navBar.y = 2000;
addChild(navBar);
this.setChildIndex(navBar,0);
Tweener.addTween(navBar,{x:0, y:-238, time:2});
createButtons();
}
private function createButtons():void
{
buttonClip = new MovieClip();
for(var i:uint = 0; i<buttonArray.length; i++)
{
buttonHolder = new ButtonHolder();
navBar.addChild(buttonHolder);
buttonHolder.x = -135 + ((buttonHolder.width)+12)*i;
buttonHolder.y = 25;
buttonHolder.name = "buttonHolder"+(i+1);
buttonHolder.buttonTxt.text = buttonArray*;
//trace(buttonHolder.name);
buttonHolder.buttonMode = true;
buttonHolder.mouseChildren = false;
buttonHolder.addEventListener(MouseEvent.CLICK, doClick);
buttonHolder.addEventListener(MouseEvent.MOUSE_OVER, mouseOver);
buttonHolder.addEventListener(MouseEvent.MOUSE_OUT, mouseOut);
}
}
private function doClick(event:MouseEvent):void
{
if(event.target.name == "buttonHolder1")
{
headerClass.loadRequest(headerClass.child1);
clickCheck = "HOME";
//trace(clickCheck);
//trace(urlArray[0]);
}
else if(event.target.name == "buttonHolder2")
{
headerClass.loadRequest(headerClass.child2);
clickCheck = "ABOUT US";
//trace(urlArray[1]);
}
}
}
}
when a button is clicked* trace(whichChild);* traces the path correctly, but the image does not load in the imageLoader.
Any Help would be appreciated.
Thanks.