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.
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.