PDA

Volledige versie bekijken : verkeerde foto wordt geladen na klik op prev button


Jomar
%Europe/Berlin %783 %2008, 19:48
Ik heb een fotoshow die voornamelijk met AS werkt (van een tutorial), slechts een vooruit- en terugknop en een loader zitten in de library. De foto's worden vanuit een xml bestand geladen.

Alles werkt prima, behalve wanneer ik op de terugknop klik. Dan wordt steeds de laatst geladen foto tussendoor herhaald.

Dit is de AS:

import mx.transitions.Tween;
import mx.transitions.easing.Strong;

this.createEmptyMovieClip("container2_mc",this.getNextHighestDepth());
this.createEmptyMovieClip("container1_mc",this.getNextHighestDepth());
this.createEmptyMovieClip("buttons_mc",this.getNextHighestDepth());
this.attachMovie("loader","loader_mc",this.getNextHighestDepth());
loader_mc._x = (Stage.width - loader_mc._width)/2;
loader_mc._y = (Stage.height - loader_mc._height)/2;

var myMCL:MovieClipLoader = new MovieClipLoader();
var myListener:Object = new Object();
myMCL.addListener(myListener);

myListener.onLoadProgress = function(target,bytesLoaded,bytesTotal) {
loader_mc._alpha = 100;
var pct = Math.round(bytesLoaded/bytesTotal*100);
loader_mc.bar_mc._xscale = pct;
}

myListener.onLoadComplete = function(target) {
loader_mc._alpha = 0;
fadeIn();
}

container2_mc._x = Stage.width - container2_mc._width - 130;
container2_mc._x = 130;
container1_mc._x = Stage.width - container1_mc._width - 130;
container1_mc._x = 130;

buttons_mc.attachMovie("prev","prev_mc",buttons_mc.getNextHighestDepth());
buttons_mc.attachMovie("next","next_mc",buttons_mc.getNextHighestDepth());
buttons_mc.next_mc._x = Stage.width - buttons_mc.next_mc._width - 50;
buttons_mc.next_mc._y = 350;
buttons_mc.prev_mc._x = 50;
buttons_mc.prev_mc._y = 350;

//-----XML-----//
var myXML:XML = new XML();
myXML.ignoreWhite = true;

var picArray:Array = new Array();
var currentElement:Number = 0;

myXML.onLoad = function(success) {
if (success) {
var ss:Array = myXML.firstChild.childNodes;
for (i=0;i<ss.length;i++) {
picArray.push(ss[i].attributes.url);
}
init();
}
else
{
trace("XML could not load");
}
}

myXML.load("slideshow.xml");

var currentContainer:MovieClip = container1_mc;

function init() {
myMCL.loadClip(picArray[currentElement],container1_mc);
}

buttons_mc.next_mc.onRelease = function() {
if (currentContainer ==container1_mc) {
currentContainer = container2_mc;
}
else
{
currentContainer = container1_mc;
}
currentContainer._alpha = 0;
container1_mc.swapDepths(container2_mc);
if (currentElement < picArray.length-1) {
currentElement++;
}
else
{
currentElement = 0;
}
myMCL.loadClip(picArray[currentElement],currentContainer);
}


buttons_mc.prev_mc.onRelease = function() {
if (currentContainer ==container1_mc) {
currentContainer ==container2_mc;
}
else
{
currentContainer = container1_mc;
}
currentContainer._alpha = 0;
container1_mc.swapDepths(container2_mc);
if (currentElement > 0) {
currentElement--;
}
else
{
currentElement = picArray.length-1;
}
myMCL.loadClip(picArray[currentElement],currentContainer);
}

function fadeIn() {
new Tween(currentContainer,"_alpha",Strong.easeOut,0,100,36,false);
}


Het vooruit bladeren werkt wel goed.

Ergens zit er iets niet goed, maar ik zie het niet.

Xanthos
%Europe/Berlin %742 %2008, 18:49
Bij je buttons_mc.prev_mc.onRelease functie moet het currentContainer = container2_mc ipv == zijn. En dan werkt hij wel normaal.
Een stom typfoutje kan vervelend zijn als je eroverheen blijft kijken.

buttons_mc.prev_mc.onRelease = function() {
if (currentContainer ==container1_mc) {
//vroeger currentContainer ==container2_mc;
currentContainer = container2_mc
}
else
{
currentContainer = container1_mc;
}
currentContainer._alpha = 0;
container1_mc.swapDepths(container2_mc);
if (currentElement > 0) {
currentElement--;
}
else
{
currentElement = picArray.length-1;
}
myMCL.loadClip(picArray[currentElement],currentContainer);
}

Jomar
%Europe/Berlin %764 %2008, 19:21
Het was inderdaad die == Nu werkt alles zoals bedoeld.

Het is inderdaad meestal een typfout die je gewoon over het hoofd ziet. En dan kun je je blind staren, maar je ziet het niet.

Bedankt voor het meekijken.