PDA

View Full Version : [AS3] delete the combobox, checkbox graphics from the website?


tempesta
03-18-2010, 01:41 PM
Hi all,

I've been trying to solve this problem for about 3 weeks and have had no luck whatsoever. I'm pretty new to Flash in general and tend to use code I've learnt through tutorials etc. I have made a website which was working fine, but when I went through a "XML Grid Gallery" tutorial and added it to my site it's caused untold problems.

Does anyone know of anything that would delete the combobox, checkbox graphics from the website? I have a button on the main menu which takes you to a frame where the gallery and XML is loaded. But once I do this and navigate away again all my other pages lose graphics and things?

I have given in and bow to the superior knowledge of your fine forum and it's dedicated patrons. Any help would be gratefully received. If you need me to post code etc or direct you to the website please let me know. But be prepared to convulse at the horrid "cobbled-together-e-nuss" of my website...

I hope to hear from you all soon.
Kind regards
Will

ASWC
03-18-2010, 02:08 PM
I think best would be to zip your file and post it here.

tempesta
03-18-2010, 02:13 PM
Ok I'm just at work work at the moment but I will post it here in a couple of hours. Should I just put the .fla file in or should I include the gallery XML and thumbnails/pictures etc?

Thanks for replying I really appreciate it.

ASWC
03-18-2010, 02:16 PM
just include anything relevant to the problem. If without the gallery you still lose your combobox then we probably don't need the gallery.

tempesta
03-18-2010, 02:22 PM
I'll Include it then. When I comment out the gallery it works fine. I'll report back soon. Thanks.

tempesta
03-18-2010, 05:07 PM
Right the .fla is way too big to upload as it says max file size 500kb. Is there another way I can send the .fla and gallery files? The .fla is 10mb as its full of rubbish. I think the .swf comes out at about 2.5mb though when i publish it. I know that probably sounds really big but its only for broadband users and the entire site is done in flash.

ASWC
03-18-2010, 05:26 PM
you can try to create a new fla and just put a combobox and the gallery where they are in the original fla and put the same code (I don't know if that might be too much work) and just post that. Or you can just post some code that you think might cause the problem.

tempesta
03-18-2010, 05:47 PM
Well heres the gallery code. Without the gallery code in the website everything works fine. The site works fine until I click on a button which takes you to the frame which executes this code. Once that has happened the scrollpanes mess us, comboboxes disappear, checkboxes disappear etc...

------------------
stop()

import fl.controls.ProgressBar;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;

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 container_mc:MovieClip;
var preloaders_mc:MovieClip;
var full_mc:MovieClip;

var x_counter:Number = 0;
var y_counter:Number = 0;

var my_tweens:Array = [];
var container_mc_tween:Tween;
var full_tween:Tween;

var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.load(new URLRequest("gallery.xml"));
myXMLLoader.addEventListener(Event.COMPLETE, processXML);

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);

container_mc.addEventListener(MouseEvent.CLICK, callFull);
container_mc.addEventListener(MouseEvent.MOUSE_OVE R, onOver);
container_mc.addEventListener(MouseEvent.MOUSE_OUT , onOut);
container_mc.buttonMode = true;

preloaders_mc = new MovieClip();
preloaders_mc.x = container_mc.x;
preloaders_mc.y = container_mc.y;
addChild(preloaders_mc);
}

function callThumbs():void{
for (var i:Number = 0; i < my_total; i++){

var thumb_url = my_images[i].@THUMB;;
var thumb_loader = new Loader();
thumb_loader.load(new URLRequest(thumb_url));
thumb_loader.contentLoaderInfo.addEventListener(Ev ent.COMPLETE, thumbLoaded);

thumb_loader.name = i;

thumb_loader.x = (my_thumb_width+10)*x_counter;
thumb_loader.y = (my_thumb_height+10)*y_counter;

if (x_counter+1 < columns){
x_counter++;
} else {
x_counter = 0;
y_counter++;
}

var preloader_pb:ProgressBar = new ProgressBar();
preloader_pb.source = thumb_loader.contentLoaderInfo;
preloader_pb.x = thumb_loader.x;
preloader_pb.y = thumb_loader.y;
preloader_pb.width = my_thumb_width;
preloader_pb.height = my_thumb_height;
preloaders_mc.addChild(preloader_pb);

preloader_pb.addEventListener(Event.COMPLETE, donePb);

}
}

function thumbLoaded(e:Event):void {
var my_thumb:Loader = Loader(e.target.loader);
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(Eve nt.COMPLETE, thumbLoaded);
}

function callFull(e:MouseEvent):void{
var full_loader:Loader = new Loader();
var full_url = my_images[e.target.name].@FULL;
full_loader.load(new URLRequest(full_url));
full_loader.contentLoaderInfo.addEventListener(Eve nt.INIT, fullLoaded);

var full_pb:ProgressBar = new ProgressBar();
full_pb.source = full_loader.contentLoaderInfo;
full_pb.x = (stage.stageWidth - full_pb.width)/2;
full_pb.y = (stage.stageHeight - full_pb.height)/2;
preloaders_mc.addChild(full_pb);

full_pb.addEventListener(Event.COMPLETE, donePb);

container_mc.removeEventListener(MouseEvent.CLICK, callFull);
container_mc.buttonMode = false;
container_mc.removeEventListener(MouseEvent.MOUSE_ OVER, onOver);
container_mc.removeEventListener(MouseEvent.MOUSE_ OUT, onOut);
container_mc_tween = new Tween(container_mc, "alpha", Strong.easeIn, 1,0.5,0.5, true);
}

function fullLoaded(e:Event):void{
full_mc = new MovieClip();
full_mc.buttonMode = true;
addChild (full_mc);
var my_loader:Loader = Loader(e.target.loader);
full_mc.addChild(my_loader);
full_tween = new Tween(my_loader, "alpha", Strong.easeIn, 0,1,0.5, true);
my_loader.x = (stage.stageWidth - my_loader.width)/2;
my_loader.y = (stage.stageHeight - my_loader.height)/2;
my_loader.addEventListener(MouseEvent.CLICK,remove Full);

my_loader.contentLoaderInfo.removeEventListener(Ev ent.COMPLETE, fullLoaded);
}

function removeFull(e:MouseEvent):void{
var my_loader:Loader = Loader (e.currentTarget);
full_tween = new Tween(my_loader, "alpha", Strong.easeOut, 1,0,0.5, true);
full_tween.addEventListener(TweenEvent.MOTION_FINI SH, tweenFinished);

container_mc_tween = new Tween(container_mc, "alpha", Strong.easeOut, 0.5,1,0.5, true);
}

function donePb (e:Event):void{
var my_pb:ProgressBar = ProgressBar(e.target);
preloaders_mc.removeChild(my_pb);

my_pb.removeEventListener(Event.COMPLETE, donePb);
}

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;
container_mc.addEventListener(MouseEvent.MOUSE_OVE R, onOver);
container_mc.addEventListener(MouseEvent.MOUSE_OUT , onOut);

var my_tween:Tween = Tween(e.target);
my_tween.removeEventListener(TweenEvent.MOTION_FIN ISH, tweenFinished);
}

function onOver (e:MouseEvent):void{
var my_thumb:Loader = Loader(e.target);
my_thumb.alpha = 0.5;
}
function onOut (e:MouseEvent):void{
var my_thumb:Loader = Loader (e.target);
my_thumb.alpha = 1;
}

------------------------------------------------

ASWC
03-18-2010, 05:59 PM
hummm read that please:

[ut]

tempesta
03-18-2010, 06:04 PM
Hows thats?

ASWC
03-18-2010, 06:25 PM
nice! good job! ;)

ASWC
03-18-2010, 06:28 PM
I don't really see anything wrong with this code so far. Do you get any error when you get to this frame? What happens if you empty the code on this frame and then navigate to this frame and then go back to the frame with the combobox?

tempesta
03-18-2010, 06:41 PM
No i dont get any errors when I move to this frame? I've started to comment out all of the code and slowly re introduce it until things start disappearing again. I dont know how helpful this is but here is how far i've got: -

import fl.controls.ProgressBar;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;

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 container_mc:MovieClip;
var preloaders_mc:MovieClip;
var full_mc:MovieClip;

var x_counter:Number = 0;
var y_counter:Number = 0;

var my_tweens:Array = [];
var container_mc_tween:Tween;
var full_tween:Tween;

var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.load(new URLRequest("gallery.xml"));
myXMLLoader.addEventListener(Event.COMPLETE, processXML);

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);

//container_mc.addEventListener(MouseEvent.CLICK, callFull);
//container_mc.addEventListener(MouseEvent.MOUSE_OVE R, onOver);
//container_mc.addEventListener(MouseEvent.MOUSE_OUT , onOut);
container_mc.buttonMode = true;

preloaders_mc = new MovieClip();
preloaders_mc.x = container_mc.x;
preloaders_mc.y = container_mc.y;
addChild(preloaders_mc);
}

function callThumbs():void{
for (var i:Number = 0; i < my_total; i++){

var thumb_url = my_images[i].@THUMB;;
var thumb_loader = new Loader();
thumb_loader.load(new URLRequest(thumb_url));
//thumb_loader.contentLoaderInfo.addEventListener(Ev ent.COMPLETE, thumbLoaded);

thumb_loader.name = i;

thumb_loader.x = (my_thumb_width+10)*x_counter;
thumb_loader.y = (my_thumb_height+10)*y_counter;

if (x_counter+1 < columns){
x_counter++;
} else {
x_counter = 0;
y_counter++;
}


var preloader_pb:ProgressBar = new ProgressBar();
preloader_pb.source = thumb_loader.contentLoaderInfo;
preloader_pb.x = thumb_loader.x;
preloader_pb.y = thumb_loader.y;
preloader_pb.width = my_thumb_width;
preloader_pb.height = my_thumb_height;
//preloaders_mc.addChild(preloader_pb);

//preloader_pb.addEventListener(Event.COMPLETE, donePb);

}
}

//function thumbLoaded(e:Event):void {
//var my_thumb:Loader = Loader(e.target.loader);
//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(Eve nt.COMPLETE, thumbLoaded);
//}

//function callFull(e:MouseEvent):void{
//var full_loader:Loader = new Loader();
//var full_url = my_images[e.target.name].@FULL;
//full_loader.load(new URLRequest(full_url));
//full_loader.contentLoaderInfo.addEventListener(Eve nt.INIT, fullLoaded);

//var full_pb:ProgressBar = new ProgressBar();
//full_pb.source = full_loader.contentLoaderInfo;
//full_pb.x = (stage.stageWidth - full_pb.width)/2;
//full_pb.y = (stage.stageHeight - full_pb.height)/2;
//preloaders_mc.addChild(full_pb);
//}
//full_pb.addEventListener(Event.COMPLETE, donePb);

//container_mc.removeEventListener(MouseEvent.CLICK, callFull);
//container_mc.buttonMode = false;
//container_mc.removeEventListener(MouseEvent.MOUSE_ OVER, onOver);
//container_mc.removeEventListener(MouseEvent.MOUSE_ OUT, onOut);
//container_mc_tween = new Tween(container_mc, "alpha", Strong.easeIn, 1,0.5,0.5, true);
//}

//function fullLoaded(e:Event):void{
//full_mc = new MovieClip();
//full_mc.buttonMode = true;
//addChild (full_mc);
//var my_loader:Loader = Loader(e.target.loader);
//full_mc.addChild(my_loader);
//full_tween = new Tween(my_loader, "alpha", Strong.easeIn, 0,1,0.5, true);
//my_loader.x = (stage.stageWidth - my_loader.width)/2;
//my_loader.y = (stage.stageHeight - my_loader.height)/2;
//my_loader.addEventListener(MouseEvent.CLICK,remove Full);

//my_loader.contentLoaderInfo.removeEventListener(Ev ent.COMPLETE, fullLoaded);
//}

//function removeFull(e:MouseEvent):void{
//var my_loader:Loader = Loader (e.currentTarget);
//full_tween = new Tween(my_loader, "alpha", Strong.easeOut, 1,0,0.5, true);
//full_tween.addEventListener(TweenEvent.MOTION_FINI SH, tweenFinished);

//container_mc_tween = new Tween(container_mc, "alpha", Strong.easeOut, 0.5,1,0.5, true);
//}

//function donePb (e:Event):void{
//var my_pb:ProgressBar = ProgressBar(e.target);
//preloaders_mc.removeChild(my_pb);

//my_pb.removeEventListener(Event.COMPLETE, donePb);
//}

//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;
//container_mc.addEventListener(MouseEvent.MOUSE_OVE R, onOver);
//container_mc.addEventListener(MouseEvent.MOUSE_OUT , onOut);

//var my_tween:Tween = Tween(e.target);
//my_tween.removeEventListener(TweenEvent.MOTION_FIN ISH, tweenFinished);
//}

//function onOver (e:MouseEvent):void{
//var my_thumb:Loader = Loader(e.target);
//my_thumb.alpha = 0.5;
//}
//function onOut (e:MouseEvent):void{
//var my_thumb:Loader = Loader (e.target);
//my_thumb.alpha = 1;
//}
}


The gallery obviously doesnt work or anything with all this commented out but I notice that when i add this line next: -

preloaders_mc.addChild(preloader_pb);

the problems begin. Is that any help?
Thanks

tempesta
03-22-2010, 11:13 AM
No thoughts anyone?