seba28976
%Europe/Berlin %050 %2008, 01:13
Ik heb een scriptje die foto's laad (random) maar ik wil een extra control inbouwen op de grootte om die op mijn stage te centreren. Stage is 800 op 600 pixels.
Foto's zijn 800 op 600. Nu wil ik indien het een rechtstaande foto is dat hij die foto centreet op mijn stage. Indien een liggende foto gewoon.
HEtgeen ik hieronder heb werkt niet.. ben natuurlijk nog maar beginnend AS'er maar toch.. kan iemand mij helpen..
Thnx Seba
function randomImage() {
if (loaded == filesize) {
var ran = Math.round(Math.random()*(totalImages-1));
picture_mc.loadMovie(imageFileName[ran],1);
if (picture_mc.width != imageFilename[ran].width) {
picture_mc._x = 200;
}
pause();
}
Erwinzzz
%Europe/Berlin %517 %2008, 12:24
Het probleem is dat op het moment dat je de breedte van je mc opvraagt. De afbeelding nog niet is geladen. De breedte is dus nog 0. Dit kan je oplossen door de events van de MovieClipLoader klasse te gebruiken. Als je op MovieClipLoader zoekt in de flash help staan daar uitgebreide voorbeelden. Je moet er dus voor zorgen dat je de breedte pas opvraagt als je zeker weet dat hij volledig is ingeladen ;)
seba28976
%Europe/Berlin %539 %2008, 12:56
Thnx.. zeer goede tip.. nu heb ik dat gewijzigd maar mijn beelden die normaal gecentreerd zouden moeten staan op mijn stafe staan nu uiterst rechts en heel beneden. Volgende code heb ik nu gemaakt.. Het is mijn bedoeling dat de foto's geladen worden.. en ze altijd gecentreerd staan zowel landscape als portraitfoto's.
mijn stage nu is 800x600. Maar ik vermoed dat dit in princiep geen rol speelt..
delay = 5000;
//-----------------------
function loadXML(loaded) {
if (loaded) {
xmlNode = this.firstChild;
image = [];
description = [];
total = xmlNode.childNodes.length;
for (i=0; i<total; i++) {
image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
description[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
}
firstImage();
} else {
content = "file not loaded!";
}
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("viewer.xml");
/////////////////////////////////////
listen = new Object();
listen.onKeyDown = function() {
if (Key.getCode() == Key.LEFT) {
prevImage();
} else if (Key.getCode() == Key.RIGHT) {
nextImage();
}
};
p = 0;
this.onEnterFrame = function() {
filesize = picture.getBytesTotal();
loaded = picture.getBytesLoaded();
preloader._visible = true;
if (loaded != filesize) {
preloader.preload_bar._xscale = 100*loaded/filesize;
} else {
preloader._visible = false;
if (picture._alpha<100) {
picture._alpha += 10;
}
}
};
function nextImage() {
if (p<(total-1)) {
p++;
if (loaded == filesize) {
picture._alpha = 0;
//picture.loadMovie(image[p], 1);
this.createEmptyMovieClip("image_mc",this.getNextHighestDepth());
var mclListener:Object = new Object();
mclListener.onLoadInit = function(target_mc:MovieClip) {
target_mc._x = Stage.width/2-target_mc._width/2;
target_mc._y = Stage.height/2-target_mc._height/2;
var w:Number = target_mc._width;
var h:Number = target_mc._height;
target_mc.lineStyle(4,0x000000);
target_mc.moveTo(0,0);
target_mc.lineTo(w,0);
target_mc.lineTo(w,h);
target_mc.lineTo(0,h);
target_mc.lineTo(0,0);
target_mc._rotation = 3;
};
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
image_mcl.loadClip(image[p],image_mc);
desc_txt.text = description[p];
picture_num();
slideshow();
}
}
}
function prevImage() {
if (p>0) {
p--;
picture._alpha = 0;
//picture.loadMovie(image[p], 1);
this.createEmptyMovieClip("image_mc",this.getNextHighestDepth());
var mclListener:Object = new Object();
mclListener.onLoadInit = function(target_mc:MovieClip) {
target_mc._x = Stage.width/2-target_mc._width/2;
target_mc._y = Stage.height/2-target_mc._height/2;
var w:Number = target_mc._width;
var h:Number = target_mc._height;
target_mc.lineStyle(4,0x000000);
target_mc.moveTo(0,0);
target_mc.lineTo(w,0);
target_mc.lineTo(w,h);
target_mc.lineTo(0,h);
target_mc.lineTo(0,0);
target_mc._rotation = 3;
};
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
image_mcl.loadClip(image[p],image_mc);
desc_txt.text = description[p];
picture_num();
}
}
function firstImage() {
if (loaded == filesize) {
picture._alpha = 0;
//picture.loadMovie(image[0], 1);
this.createEmptyMovieClip("image_mc",this.getNextHighestDepth());
var mclListener:Object = new Object();
mclListener.onLoadInit = function(target_mc:MovieClip) {
target_mc._x = Stage.width/2-target_mc._width/2;
target_mc._y = Stage.height/2-target_mc._height/2;
var w:Number = target_mc._width;
var h:Number = target_mc._height;
target_mc.lineStyle(4,0x000000);
target_mc.moveTo(0,0);
target_mc.lineTo(w,0);
target_mc.lineTo(w,h);
target_mc.lineTo(0,h);
target_mc.lineTo(0,0);
target_mc._rotation = 3;
};
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
image_mcl.loadClip(image[0],image_mc);
desc_txt.text = description[0];
picture_num();
slideshow();
}
}
function picture_num() {
current_pos = p+1;
pos_txt.text = current_pos+" / "+total;
}
function slideshow() {
myInterval = setInterval(pause_slideshow, delay);
function pause_slideshow() {
clearInterval(myInterval);
if (p == (total-1)) {
p = 0;
firstImage();
} else {
nextImage();
}
}
}
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.