-
no, thanks for all your help...many thanks
look forward to speaking soon
-
Senior Member
This will alleviate your problems and should fix all your issues, let me know. Again sorry for the delay.
Code:
//DRAG and DROP
var fmcChild:MovieClip = new MovieClip();
fmcChild.name = "fmc";
var fc:Boolean = false;
var startX:Number;
var startY:Number;
var one:Boolean = false;
var two:Boolean = false;
var three:Boolean = false;
var four:Boolean = false;
var five:Boolean = false;
var six:Boolean = false;
function allFalse():void {
one = false;
two = false;
three = false;
four = false;
five = false;
six = false;
}
fogMC.buttonMode =true;
fogMC.addEventListener(MouseEvent.MOUSE_DOWN, pickUpFog);
fogMC.addEventListener(MouseEvent.MOUSE_UP, dropItFog);
function pickUpFog(event:MouseEvent):void {
fogMC.startDrag();
//fogMC.rotation = 10;
event.target.parent.addChild(event.target);
fogMC.startX = event.target.x;
fogMC.startY = event.target.y;
}
var loadFog:Loader;
function dropItFog(event:MouseEvent):void {
fogMC.stopDrag();
if (fc == true && one != true) {
frameMC.removeChild(fmcChild);
fc = false;
}
var myTargetName:String = "target" + event.target.name;
var myTarget:DisplayObject = getChildByName(myTargetName);
if (event.target.hitTestObject(frameMC) && one != true) {
event.target.removeEventListener(MouseEvent.MOUSE_DOWN, pickUp);
event.target.removeEventListener(MouseEvent.MOUSE_UP, dropIt);
event.target.buttonMode = true;
event.target.x = event.target.startX;
event.target.y = event.target.startY;
trace("hit");
loadFog = new Loader();
loadFog.load(new URLRequest("fog.swf"));
loadFog.contentLoaderInfo.addEventListener(Event.COMPLETE, addFog);
//jw
} else {
event.target.x = event.target.startX;
event.target.y = event.target.startY;
}
}
function addFog(evt:Event):void {
fmcChild = MovieClip(loadFog.content);
frameMC.addChild(fmcChild);
//jw
fc = true;
allFalse();
one = true;
}
//RUGBY
rugbyMC.buttonMode =true;
rugbyMC.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
rugbyMC.addEventListener(MouseEvent.MOUSE_UP, dropIt);
function pickUp(event:MouseEvent):void {
rugbyMC.startDrag();
event.target.parent.addChild(event.target);
rugbyMC.startX = event.target.x;
rugbyMC.startY = event.target.y;
}
var loadRugby:Loader;
function dropIt(event:MouseEvent):void {
rugbyMC.stopDrag();
if (fc == true && two != true) {
frameMC.removeChild(fmcChild);
fc = false;
}
var myTargetName:String = "target" + event.target.name;
var myTarget:DisplayObject = getChildByName(myTargetName);
if (event.target.hitTestObject(frameMC) && two != true) {
event.target.buttonMode = true;
event.target.x = event.target.startX;
event.target.y = event.target.startY;
trace("hit");
loadRugby = new Loader();
loadRugby.load(new URLRequest("rugby.swf"));
loadRugby.contentLoaderInfo.addEventListener(Event.COMPLETE, addRug);
//jw
} else {
event.target.x = event.target.startX;
event.target.y = event.target.startY;
}
}
function addRug(evt:Event):void {
fmcChild = MovieClip(loadRugby.content);
frameMC.addChild(fmcChild);
//jw
fc = true;
allFalse();
two=true;
}
//DARKEHORSE
darkeMC.buttonMode =true;
darkeMC.addEventListener(MouseEvent.MOUSE_DOWN, pickUpDarke);
darkeMC.addEventListener(MouseEvent.MOUSE_UP, dropItDarke);
function pickUpDarke(event:MouseEvent):void {
darkeMC.startDrag();
event.target.parent.addChild(event.target);
darkeMC.startX = event.target.x;
darkeMC.startY = event.target.y;
}
var loadDarke:Loader;
function dropItDarke(event:MouseEvent):void {
darkeMC.stopDrag();
if (fc == true && three != true) {
frameMC.removeChild(fmcChild);
fc = false;
}
var myTargetName:String = "target" + event.target.name;
var myTarget:DisplayObject = getChildByName(myTargetName);
if (event.target.hitTestObject(frameMC) && three != true) {
event.target.buttonMode = true;
event.target.x = event.target.startX;
event.target.y = event.target.startY;
trace("hit");
loadDarke = new Loader();
loadDarke.load(new URLRequest("darkehorse.swf"));
loadDarke.contentLoaderInfo.addEventListener(Event.COMPLETE, addDar);
//jw
} else {
event.target.x = event.target.startX;
event.target.y = event.target.startY;
}
}
function addDar(evt:Event):void {
fmcChild = MovieClip(loadDarke.content);
frameMC.addChild(fmcChild);
//jw
fc = true;
allFalse();
three=true;
}
//SEIZURE
seizureMC.buttonMode =true;
seizureMC.addEventListener(MouseEvent.MOUSE_DOWN, pickUpSeizure);
seizureMC.addEventListener(MouseEvent.MOUSE_UP, dropItSeizure);
function pickUpSeizure(event:MouseEvent):void {
seizureMC.startDrag();
event.target.parent.addChild(event.target);
seizureMC.startX = event.target.x;
seizureMC.startY = event.target.y;
}
var loadSeizure:Loader;
function dropItSeizure(event:MouseEvent):void {
seizureMC.stopDrag();
if (fc == true && four != true) {
frameMC.removeChild(fmcChild);
fc = false;
}
var myTargetName:String = "target" + event.target.name;
var myTarget:DisplayObject = getChildByName(myTargetName);
if (event.target.hitTestObject(frameMC) && four != true) {
event.target.buttonMode = true;
event.target.x = event.target.startX;
event.target.y = event.target.startY;
trace("hit");
loadSeizure = new Loader();
loadSeizure.load(new URLRequest("seizure.swf"));
loadSeizure.contentLoaderInfo.addEventListener(Event.COMPLETE, addSei);
} else {
event.target.x = event.target.startX;
event.target.y = event.target.startY;
}
}
function addSei(evt:Event):void {
fmcChild = MovieClip(loadSeizure.content);
frameMC.addChild(fmcChild);
//jw
fc = true;
allFalse();
four=true;
}
//ART
artMC.buttonMode =true;
artMC.addEventListener(MouseEvent.MOUSE_DOWN, pickUpArt);
artMC.addEventListener(MouseEvent.MOUSE_UP, dropItArt);
function pickUpArt(event:MouseEvent):void {
artMC.startDrag();
event.target.parent.addChild(event.target);
artMC.startX = event.target.x;
artMC.startY = event.target.y;
}
var loadArt:Loader;
function dropItArt(event:MouseEvent):void {
artMC.stopDrag();
if (fc == true && five != true) {
frameMC.removeChild(fmcChild);
fc = false;
}
var myTargetName:String = "target" + event.target.name;
var myTarget:DisplayObject = getChildByName(myTargetName);
if (event.target.hitTestObject(frameMC) && five != true) {
event.target.buttonMode = true;
event.target.x = event.target.startX;
event.target.y = event.target.startY;
trace("hit");
loadArt = new Loader();
loadArt.load(new URLRequest("art.swf"));
loadArt.contentLoaderInfo.addEventListener(Event.COMPLETE, addArt);
} else {
event.target.x = event.target.startX;
event.target.y = event.target.startY;
}
}
function addArt(evt:Event):void {
fmcChild = MovieClip(loadArt.content);
frameMC.addChild(fmcChild);
//jw
fc = true;
allFalse();
five=true;
}
//OUTRUN
outrunMC.buttonMode =true;
outrunMC.addEventListener(MouseEvent.MOUSE_DOWN, pickUpOutrun);
outrunMC.addEventListener(MouseEvent.MOUSE_UP, dropItOutrun);
function pickUpOutrun(event:MouseEvent):void {
outrunMC.startDrag();
event.target.parent.addChild(event.target);
outrunMC.startX = event.target.x;
outrunMC.startY = event.target.y;
}
var loadOutrun:Loader;
function dropItOutrun(event:MouseEvent):void {
outrunMC.stopDrag();
if (fc == true && six != true) {
frameMC.removeChild(fmcChild);
fc = false;
}
var myTargetName:String = "target" + event.target.name;
var myTarget:DisplayObject = getChildByName(myTargetName);
if (event.target.hitTestObject(frameMC) && six != true) {
event.target.buttonMode = true;
event.target.x = event.target.startX;
event.target.y = event.target.startY;
trace("hit");
loadOutrun = new Loader();
loadOutrun.load(new URLRequest("outrun.swf"));
loadOutrun.contentLoaderInfo.addEventListener(Event.COMPLETE, addOut);
} else {
event.target.x = event.target.startX;
event.target.y = event.target.startY;
}
}
function addOut(evt:Event):void {
fmcChild = MovieClip(loadOutrun.content);
frameMC.addChild(fmcChild);
//jw
fc = true;
allFalse();
six=true;
}
-
thats fantastic m8 thanks ever so much.
i,m just wondering how you did it.
cheers again
i will put your username into my site credits cheers.
-
Senior Member
No problem.
I guess an explanation would be nice, LOL.
Anyway, here goes.
A lot of it was trial and error as I was pretty tired in the start of it until I realized your issues.
First being you had no onLoadComplete handlers, and you were trying to add children that didn't exist yet, so I added those to fix that problem.
Next the loaders kept trying to recreate themselves as themselves, so I defined them outside their functions so they could be used anywhere, and then defined them as new Loaders within their respective function.
Then in the complete handlers I defined a variable called fmcChild which held the name of the current clip loaded universally so it could later be removed so that another may come in.
Then the clips dragging twice causing an error was because it was trying to eliminate itself over and over and over, and flash just basically didn't like it. So that's where the fc boolean and number boolean values came in, to determine if that clip was already on stage, just don't destroy it, if not, destroy the clip there and load a new one.
That help a bit?
And thanks for the credit, you may also add my name if you'd like:
Jonathon J. Weeks
Good luck to you.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|