---
title: "Hjälp med slideshow och lager."
type: "forum-thread"
url: "https://www.webforum.nu/amne/flash/130772-hjälp-med-slideshow-och-lager"
topic: "Flash"
topic_url: "https://www.webforum.nu/amne/flash"
author: "Obbelix"
published: "2005-06-29T23:11:37.000Z"
updated: "2005-06-30T08:52:25.000Z"
replies: 6
views: 342
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/flash/130772-hjälp-med-slideshow-och-lager"
---

# Hjälp med slideshow och lager.

## #1 — Obbelix, 2005-06-29T23:11Z

Har laddat ner [denna](http://whatdoiknow.org/archives/001629.shtml) "slideshow" för lite tester (är novis på flash), och har fått det fungera halvvägs.
Det jag vill är att ha flera lager i flashen, säg 5st, och att slideshowen ligger i det understa lagret. Men som det är nu lägger den sig alltid överst även om jag lägger scritptet i det understa lagret.
Nån som vet hur man gör (om det går) så det blir som jag vill ha det?

```
// set random # variables - each must be 0 for first 'while' loop below
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("images.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 ("order attribute in xml isn't correct - must specify either 'random' or 'sequential'");
	}
	clearInterval(timerInterval);
}
stop();
```

Permalänk: https://www.webforum.nu/p/130772

## #2 — Blixtsystems, 2005-06-30T06:36Z

Då du skapar med flash som ett grafikverktyg så använder du dig av lager, men med innehåll skapat av kod så är det djup som gäller.
Om du använder tex createEmptyMovieClip eller duplicateMovieClip så kommer de normalt hamna över allt annat innehåll.

Så det kan vara lite bökigt att kombinera manuellt och kodat inehåll.
Du skulle kunna göra "container_mc" och de andra clips som skapas med kod nu för hand istället, men då koden använder swapDepth så är det inte en smidig lösning.

Förmodligen får du använda duplicateMovieClip för att flytta upp det innehåll som skall vara på ett högre djup. 
Tex göra det som skall ligga på lager5 till ett mc och sedan  använda duplicateMovieClip...tex:
lager5.duplicateMovieClip("lager5Kopia", 5);
lager5.\_visible=false;

Permalänk: https://www.webforum.nu/p/1638378

## #3 — Obbelix, 2005-06-30T06:59Z

ok...

Har testat lite med duplicateMovieClip men får inte till det. Vart ska det ligga? i samma actionscript som det andra eller på önskat lagers script?

Och hur anges dupet? Ligger högsta värdet överst eller unders?

Permalänk: https://www.webforum.nu/p/1638382

## #4 — Blixtsystems, 2005-06-30T07:23Z

Det skall ligga på samma keyframe som inhehållet skall visas på. Lager spelar ingen roll...normalt håller jag all frame kod på ett dedikerat kod lager.
Är du säker på att du döpt clippet korrekt?

Och högre värde på djupet=överst.

Permalänk: https://www.webforum.nu/p/1638388

## #5 — Obbelix, 2005-06-30T07:28Z

Med "lager5.duplicateMovieClip("lager5Kopia", 5);" menar du då namnet på lagret eller namnet på "objektet" som jag gjort om till MovieClip? För det är väl "Instance Name" som är själva namnet på objektet?

Detta var knepigt :OO

Permalänk: https://www.webforum.nu/p/1638390

## #6 — Blixtsystems, 2005-06-30T07:52Z

Det var lite förvirrande exempel på namn kanske, my bad.

Jag menade att du gör ett mc av det som skall hamna över det slideshow koden genererar och döpa det till tex "lager5" som instance name.

Lager existerar inte i actionscript och går inte att särskilja eller referera till på något sätt.

Permalänk: https://www.webforum.nu/p/1638393

## #7 — Obbelix, 2005-06-30T08:52Z

Till slut så fick jag till det.
Tack för all hjälp! :)

Permalänk: https://www.webforum.nu/p/1638403

---

Tråden på webben: https://www.webforum.nu/amne/flash/130772-hjälp-med-slideshow-och-lager
