problem with simple unload function
I have a little problem I need to to go from one keyframe with a gallery, I need that gallery to unload and go to another keyframe called "contact"
but when I do it always comes with
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at gallery_rabbit_picture_fla:MainTimeline/addImage/gallery_rabbit_picture_fla:comImage()[gallery_rabbit_picture_fla.MainTimeline::frame1:73]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at fl.containers::UILoader/passEvent()
at fl.containers::UILoader/handleComplete()
in the 1st. gallery keyframe i have the following it's the button called: contact03_btn that needs to execute the function (see highlight)
var galWid:uint=879.95;
var galHei:uint=300;
var galX:Number=10;
var galY:Number=175;
var scale:Number=1.7;
var speed:Number=0.5;
var scrollX:uint=20;
var alignLeft:Boolean=false;
// Disse bliver kun brugt hvis alignLeft er 'true'
// Dete skal angives i ønskede koordinater.
var offsetX:Number = 40;
var offsetY:Number = 160;
import com.greensock.TweenLite;
import com.greensock.OverwriteManager;
import com.greensock.plugins.*;
TweenPlugin.activate([TransformAroundCenterPlugin,AutoAlphaPlugin]);
var loader:URLLoader = new URLLoader();
var images:XML;
var imageArray:Array = new Array();
var imgNum:uint=0;
var imgLen:uint;
var imgX:uint=0;
var curImg:uint;
var exposed:Boolean=false;
OverwriteManager.init(2);
click_MC2.visible=false;
click_MC.visible=true;
contact03_btn.visible=true;
prevBtn.visible=false;
nextBtn.visible=false;
nextBtn.addEventListener(MouseEvent.CLICK, nextImg);
prevBtn.addEventListener(MouseEvent.CLICK, prevImg);
gallery.addEventListener(MouseEvent.MOUSE_MOVE,scrollImage);
gallery.addEventListener(MouseEvent.MOUSE_OUT, offImage);
loader.addEventListener(Event.COMPLETE, setup);
loader.load(new URLRequest("xml/rabit.xml"));
function setup(e:Event):void {
images=new XML(e.target.data);
imgLen=images.image.length();
galMask.width = galWid;
galMask.height = stage.stageHeight;
galMask.x = galX;
galMask.y = stage.stageHeight*0.5;
gallery.x = galX;
gallery.y = galY;
addImage();
}
function addImage():void {
var img:imgCon = new imgCon();
imageArray.push(img);
img.con.source=images.image[imgNum].src;
img.con.addEventListener(Event.COMPLETE,comImage);
img.addEventListener(MouseEvent.CLICK,expImage);
img.addEventListener(MouseEvent.MOUSE_OVER, onImage);
function comImage(e:Event):void {
TweenLite.from(img,0.5,{alpha:0});
img.con.height=galHei;
e.target.content.smoothing=true;
img.con.width=(img.width/img.height)*img.con.height;
img.x=imgX;
img.num=imgNum;
img.des1=images.image[imgNum].des1;
img.des2=images.image[imgNum].des2;
imgX+=img.con.width;
gallery.addChild(img);
imgNum++;
if (imgNum<imgLen) {
addImage();
}
}
}
function scrollImage(Event):void {
if (gallery.width>galWid) {
var procent:Number = ((mouseX-galX)/galWid);
if (procent<0.1) {
procent=0;
}
if (procent>0.9) {
procent=1;
}
TweenLite.to(gallery, scrollX, {x:galX-(gallery.width-galWid)*procent, y:galY});
TweenLite.to(gallery, scrollX, {x:galX-(gallery.width-galWid)*procent, y:galY});
} else {
TweenLite.to(gallery,speed,{y:galY, x:galX});
}
}
function onImage(e:MouseEvent):void {
desTxtSmall.htmlText=e.currentTarget.des1;
}
function offImage(e:MouseEvent):void{
desTxtSmall.htmlText='';
}
function expImage(e:MouseEvent):void {
curImg=e.currentTarget.num;
gallery.setChildIndex(imageArray[curImg], gallery.numChildren - 1);
imageArray[curImg];
if (! exposed) {
for (var i=0; i<gallery.numChildren; i++) {
TweenLite.to(gallery.getChildAt(i),speed,{autoAlpha:0});
}
exposed=true;
toggleBtns();
gallery.removeEventListener(MouseEvent.MOUSE_MOVE, scrollImage);
e.currentTarget.removeEventListener(MouseEvent.MOUSE_OUT, hideDes);
e.currentTarget.removeEventListener(MouseEvent.MOUSE_OVER, showDes);
e.currentTarget.removeEventListener(MouseEvent.CLICK, expImage);
e.currentTarget.addEventListener(MouseEvent.CLICK, minImage);
desTxt.visible=true;
desTxtSmall.visible=false;
desTxt.htmlText=e.currentTarget.des2;
if (alignLeft) {
TweenLite.to(galMask,0.5,{x:offsetX,width:stage.stageWidth});
TweenLite.to(gallery, speed,{x:-e.currentTarget.x+offsetX+((e.currentTarget.width*scale-e.currentTarget.width)*0.5)});
TweenLite.to(e.currentTarget,speed,{autoAlpha:1, transformAroundCenter:{scaleX:scale, scaleY:scale}, y:-galY+offsetY});
} else {
TweenLite.to(galMask,0.5,{x:galX+galWid*0.5-(e.currentTarget.width*0.5*scale),width:stage.stageWidth});
TweenLite.to(gallery, speed,{x:-e.currentTarget.x-e.currentTarget.width*0.5+(galWid*0.5)+galX});
TweenLite.to(e.currentTarget,speed,{autoAlpha:1, transformAroundCenter:{scaleX:scale, scaleY:scale}});
}
}
}
function minImage(e:Event):void {
exposed=false;
click_MC2.visible=false;
click_MC.visible=true;
contact03_btn.visible=true;
prevBtn.visible=false;
nextBtn.visible=false;
TweenLite.to(galMask,0.5,{x:galX, width:galWid});
for (var i=0; i<gallery.numChildren; i++) {
TweenLite.to(gallery.getChildAt(i),speed,{autoAlpha:1});
}
e.currentTarget.removeEventListener(MouseEvent.CLICK, minImage);
e.currentTarget.addEventListener(MouseEvent.CLICK, expImage);
gallery.addEventListener(MouseEvent.MOUSE_MOVE, scrollImage);
desTxt.visible=false;
desTxtSmall.visible=true;
//TweenLite.to(desTxt,speed,{x:txtMinX, y:txtMinY});
TweenLite.to(e.currentTarget,speed,{transformAroundCenter:{scaleX:1, scaleY:1},y:0});
TweenLite.to(gallery,speed,{y:galY});
//TweenLite.to(galMas,speed,{height:galHei*scale, width:galWid, y:galY, x:galX});
scrollImage(null);
}
function showDes(e:Event):void {
if (! exposed) {
desTxt.visible=true;
desTxt.htmlText=e.target.des1;
}
}
function hideDes(e:Event):void {
if (! exposed) {
desTxt.visible=false;
}
}
function nextImg(Event) {
if (curImg<imgLen-1) {
imageArray[curImg].addEventListener(MouseEvent.CLICK, expImage);
imageArray[curImg].removeEventListener(MouseEvent.CLICK, minImage);
TweenLite.to(imageArray[curImg],0.5,{transformAroundCenter:{scaleX:1, scaleY:1},autoAlpha:0, y:0});
var nextImg=imageArray[++curImg];
gallery.setChildIndex(nextImg, gallery.numChildren - 1);
nextImg.removeEventListener(MouseEvent.CLICK, expImage);
nextImg.addEventListener(MouseEvent.CLICK, minImage);
desTxt.htmlText=nextImg.des2;
if (alignLeft) {
TweenLite.to(gallery, speed,{x:-nextImg.x+offsetX+((nextImg.width*scale-nextImg.width)*0.5)});
TweenLite.to(nextImg,speed,{autoAlpha:1, transformAroundCenter:{scaleX:scale, scaleY:scale}, y:-galY+offsetY});
} else {
TweenLite.to(gallery, speed,{x:-nextImg.x-nextImg.width*0.5+(galWid*0.5)+galX});
TweenLite.to(nextImg,speed,{autoAlpha:1, transformAroundCenter:{scaleX:scale, scaleY:scale}});
}
toggleBtns();
}
}
function prevImg(Event) {
if (curImg>0) {
imageArray[curImg].addEventListener(MouseEvent.CLICK, expImage);
imageArray[curImg].removeEventListener(MouseEvent.CLICK, minImage);
TweenLite.to(imageArray[curImg],0.5,{transformAroundCenter:{scaleX:1, scaleY:1},autoAlpha:0,y:0});
var prevImg=imageArray[--curImg];
gallery.setChildIndex(prevImg, gallery.numChildren - 1);
prevImg.removeEventListener(MouseEvent.CLICK, expImage);
prevImg.addEventListener(MouseEvent.CLICK, minImage);
desTxt.htmlText=prevImg.des2;
if (alignLeft) {
TweenLite.to(gallery, speed,{x:-prevImg.x+offsetX+((prevImg.width*scale-prevImg.width)*0.5)});
TweenLite.to(prevImg,speed,{autoAlpha:1, transformAroundCenter:{scaleX:scale, scaleY:scale}, y:-galY+offsetY});
} else {
TweenLite.to(gallery, speed,{x:-prevImg.x-prevImg.width*0.5+(galWid*0.5)+galX});
TweenLite.to(prevImg,speed,{autoAlpha:1, transformAroundCenter:{scaleX:scale, scaleY:scale}});
}
toggleBtns();
}
}
function toggleBtns():void {
if (curImg>0) {
prevBtn.visible=true;
} else {
prevBtn.visible=false;
}
if (curImg<imgLen-1) {
nextBtn.visible=true;
} else {
nextBtn.visible=false;
}
click_MC.visible=false;
contact03_btn.visible=false;
click_MC2.visible=true;
}
back03_btn.addEventListener(MouseEvent.CLICK,back_rabit)
function back_rabit(event:MouseEvent):void
{
ExternalInterface.call("Shadowbox.close");
}
stage.addEventListener(MouseEvent.CLICK, goTo_contact);
function goTo_contact(event:MouseEvent):void{
if (event.target.name!=null){
switch(event.target.name) {
case "contact03_btn":
gotoAndStop("contact");
//gallery.unload()
//removeChild(gallery);
break;
default:
trace("goto contact");
}
}
}
stop();
