I have a button (myCloseBtn) and when clicked it runs a function (removeFull) to remove a child (full_mc) from the stage along with some others (full_description) (full_caption) (full_price). This works fine!
I also want to remove two other button instances/children (mySpinBtn) & (myCloseBtn) but I can’t find a way of making it work.
I am a newbie at doing this sort of thing (ie. loading things at Runtime and Children etc.)
Could anyone help me please!???
Here’s the code (error sections in red)
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
import flash.net.URLRequest;
import flash.display.Loader;
import flash.events.Event;
import flash.events.ProgressEvent;
import com.greensock.*;
import com.greensock.easing.*;
var columns:Number;
var my_x:Number;
var my_y:Number;
var my_thumb_width:Number;
var my_thumb_height:Number;
var my_images:XMLList;
var my_total:Number;
var myFont:Font = new helvetica();
var container_mc:MovieClip;
var closecontactbtn:MovieClip;
var contactmc:MovieClip;
var full_mc:MovieClip;
var full_caption:TextField = new TextField();
var full_description:TextField = new TextField();
var full_price:TextField = new TextField();
var thumb_caption:TextField = new TextField();
var mySpinBtn:MovieClip;
var myCloseBtn:MovieClip;
var spin_url:String;
var fullImage:Loader;
var x_counter:Number=0;
var y_counter:Number=0;
var my_tweens:Array=[];
var container_mc_tween:Tween;
var full_tween:Tween;
var tweento360:Tween;
var contact_tween:Tween;
var thumb_caption_tween:Tween;
var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.load(new URLRequest("gallery.xml"));
myXMLLoader.addEventListener(Event.COMPLETE, processXML);
terms_btn.addEventListener(MouseEvent.CLICK, gototerms);
terms_mc.alpha=.0;
function gototerms(event:MouseEvent):void {
if(container_mc) setChildIndex(container_mc, 0);
if(full_mc){setChildIndex(full_mc, 0.1);
setChildIndex(container_mc, 0);
TweenLite.to(full_description, 0.2, {alpha:0});
TweenLite.to(full_caption, 0.2, {alpha:0});
TweenLite.to(full_price, 0.2, {alpha:0});
}
terms_mc.alpha=.8;
terms_mc.closeterms_btn.addEventListener(MouseEvent.CLICK, closeterms);
terms_mc.closeterms_btn.buttonMode=true;
terms_btn.removeEventListener(MouseEvent.CLICK, gototerms);
}
function closeterms(event:MouseEvent):void{
if(full_mc){setChildIndex(full_mc, 1);
TweenLite.to(full_description, 0.5, {alpha:1});
TweenLite.to(full_caption, 0.5, {alpha:1});
TweenLite.to(full_price, 0.5, {alpha:1});
}
else{ setChildIndex(container_mc, 1);}
terms_mc.alpha=.0;
terms_btn.addEventListener(MouseEvent.CLICK, gototerms);
}
//contact_btn.addEventListener(MouseEvent.CLICK, gotocontact);
function gotocontact(event:MouseEvent):void {
var contactmc:contact_mc = new contact_mc();
contactmc.x=0;
contactmc.y=60;
addChild(contactmc);
var closecontactbtn:MovieClip = new closecontact_btn();
closecontactbtn.x=780;
closecontactbtn.y=70;
addChild(closecontactbtn);
closecontactbtn.addEventListener(MouseEvent.CLICK,closecontact);
closecontactbtn.buttonMode=true;
contact_tween=new Tween(contactmc,"alpha",Strong.easeIn,0,0.8,0.5,true);
contact_tween=new Tween(closecontactbtn,"alpha",Strong.easeIn,0,0.8,0.8,true);
}
function closecontact(event:MouseEvent):void {
var contactmc:contact_mc;
var closecontactbtn:closecontact_btn;
removeChild(contactmc);
removeChild(closecontactbtn);
}
function processXML(e:Event):void {
var myXML:XML=new XML(e.target.data);
columns=myXML.@COLUMNS;
my_x=myXML.@XPOSITION;
my_y=myXML.@YPOSITION;
my_thumb_width=myXML.@WIDTH;
my_thumb_height=myXML.@HEIGHT;
my_images=myXML.IMAGE;
my_total=my_images.length();
createContainer();
callThumbs();
myXMLLoader.removeEventListener(Event.COMPLETE,processXML);
myXMLLoader=null;
}
function createContainer():void {
container_mc = new MovieClip();
container_mc.x=my_x;
container_mc.y=my_y;
addChild(container_mc);
setChildIndex(container_mc, 1);
container_mc.addEventListener(MouseEvent.CLICK,callFull);
container_mc.buttonMode=true;
}
function callThumbs():void {
for (var i:Number = 0; i < my_total; i++) {
var thumb_url=my_images*.@THUMB;
thumb_caption.text=my_images*.@NAME;
var thumb_loader = new Loader();
thumb_loader.load(new URLRequest(thumb_url));
thumb_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,thumbLoaded);
thumb_loader.name=i;
thumb_loader.x = (my_thumb_width)*x_counter;
thumb_loader.y = (my_thumb_height)*y_counter;
if (x_counter+1<columns) {
x_counter++;
} else {
x_counter=0;
y_counter++;
}
}
}
function thumbLoaded(e:Event):void {
var my_thumb:Loader=Loader(e.target.loader);
for (var i:Number = 0; i < my_total; i++) {
container_mc.addChild(my_thumb);
my_tweens[Number(my_thumb.name)]=new Tween(my_thumb,"alpha",Strong.easeIn,0,1,0.5,true);
my_thumb.contentLoaderInfo.removeEventListener(Event.COMPLETE, thumbLoaded);
//thumb_caption.Name = i;
addChild(thumb_caption);
var format:TextFormat = new TextFormat();
format.font="Verdana";
format.bold=true;
format.color=0x000000;
format.size=13;
format.align="right";
thumb_caption.setTextFormat(format);
thumb_caption.x = (100)*x_counter;
thumb_caption.y = (100)*y_counter;
if (x_counter+1<columns) {
x_counter++;
} else {
x_counter=0;
y_counter++;
thumb_caption_tween=new Tween(thumb_caption,"alpha",Strong.easeIn,0,1,1,true);
}
}
}
function callFull(e:MouseEvent):void {
spin_url=my_images[e.target.name].@LINK;
var full_loader:Loader = new Loader();
fullImage=full_loader;
var full_url=my_images[e.target.name].@FULL;
full_loader.load(new URLRequest(full_url));
full_loader.contentLoaderInfo.addEventListener(Event.INIT, fullLoaded);
full_caption.text=my_images[e.target.name].@NAME;
full_description.text=my_images[e.target.name].@DESCRIPTION;
full_price.text=my_images[e.target.name].@PRICE;
container_mc.removeEventListener(MouseEvent.CLICK,callFull);
container_mc.buttonMode=false;
}
function fullLoaded(e:Event):void {
var container_mc:MovieClip;
full_mc = new MovieClip();
addChild(full_mc);
var my_loader:Loader=Loader(e.target.loader);
TweenLite.to(my_loader, 0, {alpha:0});
full_mc.addChild(my_loader);
TweenLite.to(my_loader, 1, {alpha:1});
my_loader.x=0;
my_loader.y=60;
var myCloseBtn:MovieClip = new closebtn_mc();
addChild(myCloseBtn);
myCloseBtn.x=660;
myCloseBtn.y=485;
myCloseBtn.buttonMode=true;
myCloseBtn.addEventListener(MouseEvent.CLICK,removeFull);
var mySpinBtn:MovieClip = new spinbtn_mc();
addChild(mySpinBtn);
mySpinBtn.x=560;
mySpinBtn.y=485;
mySpinBtn.buttonMode=true;
mySpinBtn.addEventListener(MouseEvent.CLICK,play360);
function play360(e:MouseEvent):void {
tweento360=new Tween(full_mc,"alpha",Strong.easeOut,1,0,0.5,true);
tweento360.addEventListener(TweenEvent.MOTION_FINISH, untweenFinished);
removeChild(container_mc);
removeChild(full_description);
removeChild(full_caption);
function startLoad() {
var mLoader:Loader = new Loader();
var mRequest:URLRequest=new URLRequest(spin_url);
mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);
mLoader.load(mRequest);
}
function onCompleteHandler(loadEvent:Event) {
addChild(loadEvent.currentTarget.content);
}
startLoad();
removeEventListener(Event.COMPLETE, onCompleteHandler);
}
var format:TextFormat = new TextFormat();
format.font = myFont.fontName;
format.size = 13;
format.color=0xA3A2A0;
format.align="left";
full_caption.x=610;
full_caption.y=130;
full_caption.selectable=false;
full_caption.embedFonts=true;
full_caption.setTextFormat(format);
addChild(full_caption);
TweenLite.from(full_caption, 2, {alpha:0});
var format2:TextFormat = new TextFormat();
format2.font=myFont.fontName;
format2.size=10;
format2.color=0xA3A2A0;
format2.align="left";
full_description.x=610;
full_description.y=150;
full_description.width=150;
full_description.height=200;
full_description.border=false;
full_description.multiline=true;
full_description.wordWrap=true;
full_description.selectable=false;
full_description.embedFonts=true;
full_description.setTextFormat(format2);
addChild(full_description);
TweenLite.from(full_description, 2.3, {alpha:0});
var format3:TextFormat = new TextFormat();
format3.font=myFont.fontName;
format3.color=0xA3A2A0;
format3.size=10;
format3.align="left";
full_price.x=610;
full_price.y=250;
full_price.selectable=false;
full_price.embedFonts=true;
full_price.setTextFormat(format3);
addChild(full_price);
TweenLite.from(full_price, 2.6, {alpha:0});
my_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, fullLoaded);
}
function removeFull(e:MouseEvent):void {
var my_loader:Loader=fullImage;
full_tween=new Tween(my_loader,"alpha",Strong.easeOut,1,0,0.5,true);
full_tween.addEventListener(TweenEvent.MOTION_FINISH, tweenFinished);
removeChild(full_description);
removeChild(full_caption);
removeChild(full_price);
[COLOR=Red] removeChild(myCloseBtn);
removeChild(mySpinBtn); [/COLOR]
}
function tweenFinished(e:TweenEvent):void {
var my_loader:Loader=Loader(e.target.obj);
my_loader.unload();
full_mc.removeChild(my_loader);
removeChild(full_mc);
full_mc=null;
container_mc.addEventListener(MouseEvent.CLICK, callFull);
container_mc.buttonMode=true;
var my_tween:Tween=Tween(e.target);
my_tween.removeEventListener(TweenEvent.MOTION_FINISH, tweenFinished);
setChildIndex(container_mc, 1);
}
function untweenFinished(e:TweenEvent):void {
removeChild(full_mc);
var tweento360:Tween=Tween(e.target);
tweento360.removeEventListener(TweenEvent.MOTION_FINISH, untweenFinished);
}
I just get this error:
TypeError: Error #2007: Parameter child must be non-null.
at flash.display: :DisplayObjectContainer/removeChild()
at trial2_fla::MainTimeline/removeFull()
Thanks for looking at it - I’m a bit lost to be honest and could really do with some help???