Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 2 of 2
  1. #1
    New to the CF scene
    Join Date
    Oct 2008
    Posts
    7
    Thanks
    2
    Thanked 0 Times in 0 Posts

    Help re-using an external .swf

    Hello

    Im having an issue with a template i bought, basically an MC_holder calls external swf files. Lets say this is called holder_mc.

    When holder_mc loads the code below in an external swf it loads fine. However when i try to load the same swf but a different instance overlapping starts to occur.

    here is the code:
    Code:
    var randomNum = 0;
    var randomNumLast = 0;
    
    // parent container
    var container_mc = this.createEmptyMovieClip("container",0);
    // movie clip containers
    container_mc.createEmptyMovieClip("loader1_mc",2);
    container_mc.createEmptyMovieClip("loader2_mc",1);
    
    // preload watcher
    this.createEmptyMovieClip("watcher_mc",100);
    
    // load xml
    images_xml = new XML();
    images_xml.ignoreWhite=true;
    images_xml.onLoad = parse;
    images_xml.load("illustration/illust_slide.xml");
    
    function parse(success) {
    	if (success) {
    		imageArray = new Array();
    		var root = this.firstChild;
    		_global.numPause = Number(this.firstChild.attributes.timer * 1000);
    		_global.order = this.firstChild.attributes.order;
    		_global.looping = this.firstChild.attributes.looping;
    		_global.fadetime = Number(this.firstChild.attributes.fadetime);
    		_global.xpos = Number(this.firstChild.attributes.xpos);
    		_global.ypos = Number(this.firstChild.attributes.ypos);
    		var imageNode = root.lastChild;
    		var s=0;
    		while (imageNode.nodeName != null) {
    			imageData = new Object;
    			imageData.path = imageNode.attributes.path;
    			imageArray[s]=imageData;
    			imageNode = imageNode.previousSibling;
    			s++;
    		}
    		// place parent container
    		container_mc._x = _global.xpos;
    		container_mc._y = _global.ypos;
    		// parse array
    		imageArray.reverse();
    		imageGen(imageArray);
    	} else {
    		trace('problem');
    	}
    }
    
    // depth swapping
    function swapPlace(clip,num) {
    	eval(clip).swapDepths(eval("container_mc.loader"+num+"_mc"));
    }
    
    function loadImages(data,num) {
    	if (i==undefined || i == 2) {
    		i=2;
    		createLoader(i,data,num);
    		i=1;
    	} else if (i==1) {
    		createLoader(i,data,num);
    		i=2;
    	}
    }
    function createLoader(i,data,num) {
    	thisLoader=eval("container_mc.loader"+i+"_mc");
    	thisLoader._alpha=0;
    	thisLoader.loadMovie(data[num].path);
    	watcher_mc.onEnterFrame=function () {
    		var picLoaded = thisLoader.getBytesLoaded();
    		var picBytes = thisLoader.getBytesTotal();
    		if (isNaN(picBytes) || picBytes < 4) {
    			return;
    		}
    		if (picLoaded / picBytes >= 1) {
    			swapPlace("container_mc.loader2_mc",1);
    			alphaTween = new mx.transitions.Tween(thisLoader, "_alpha", mx.transitions.easing.Regular.easeOut,0,100,_global.fadetime,true);
    			timerInterval = setInterval(imageGen,_global.numPause,data);
    			delete this.onEnterFrame;
    		}
    	}
    }
    function imageGen(data) {
    	// random, or sequential?
    	if (_global.order=="random") {
    		// choose random # between 0 and total number of images
    		while (randomNum == randomNumLast) {
    			randomNum = Math.floor(Math.random() * data.length);
    			trace(randomNum);
    		}
    		loadImages(data,randomNum);
    		randomNumLast = randomNum;
    	} else if (_global.order=="sequential") {
    		// start at 0, increment to total number of images, then drop back to zero when done
    		if (p==undefined || p==data.length && _global.looping=="yes") { p=0; } else { break; }
    		loadImages(data,p);
    		p++;
    	} else {
    		trace ("eror!");
    	}
    	clearInterval(timerInterval);
    }
    stop();
    Now that code is working fine, however because i have duplicated this code to create different instances of this swf file it is mis-matching and blending in with the previous loaded swf which obviously has the same code.

    Im not a lazy person i have been at this for a couple of weeks now, i have tried to adjust the levels within this script. But im not exactly a pro in the scripting area. I think it is the global levels which is causing this issue. But im not sure on how to fix it, ive tried creating different container names and the lot.

    I really appreciate your help and if you would prefer me to post the whole folder then please just ask and ill upload it to my server.

    Craig

  • #2
    Senior Coder gnomeontherun's Avatar
    Join Date
    Sep 2007
    Location
    Houston
    Posts
    2,846
    Thanks
    10
    Thanked 238 Times in 229 Posts
    I'm a little confused about what is happening, and why you are loading the same SWF multiple times. Regardless, an example for me to see the issue, and the FLA if you can, would be most appreciated.

    My first assumption is that since everything is set to global, each time the SWF is loaded the values are reset or overwritten or shared or confused. If this code is to stay within the function, removing the globality of the variables would be a good start.
    jeremy - gnomeontherun
    Educated questions often get educated answers, and simple questions often get simple answers.


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •