Salve ragazzi,
mi sono iscritto su questo forum essendo un neofita di flash, per porvi il seguente quesito...
Sto facendo una gallery che carica alcune immagini tramite XML, la mia idea sarebbe quella di poter adattare l'immagine caricata alla grandezza dello stage (o della pagina di visualizzazione) con la possibilità di "non essere scalata".
Qui di seguito posto il codice attualmente realizzato:
Stage.scaleMode = "noScale";
Stage.align = "TL";
var stageListener:Object = new Object();
Stage.addListener(stageListener);
stageListener.onResize = function() {
setPicture();
}
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("images.xml");
/////////////////////////////////////
listen = new Object();
listen.onKeyDown = function() {
if (Key.getCode() == Key.LEFT) {
prevImage();
} else if (Key.getCode() == Key.RIGHT) {
nextImage();
}
};
Key.addListener(listen);
previous_btn.onRelease = function() {
prevImage();
};
next_btn.onRelease = function() {
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);
desc_txt.text = description[p];
picture_num();
setPicture();
}
}
}
function prevImage() {
if (p>0) {
p--;
picture._alpha = 0;
picture.loadMovie(image[p], 1);
desc_txt.text = description[p];
picture_num();
setPicture();
}
}
function firstImage() {
if (loaded == filesize) {
picture._alpha = 10;
picture.loadMovie(image[0], 1);
desc_txt.text = description[0];
picture_num();
}
}
function picture_num() {
current_pos = p+1;
pos_txt.text = current_pos+" / "+total;
}
function setPicture() {
var middleX = Stage.width/2;
var middleY = Stage.height/2;
picture._width = Stage.width;
picture._height = Stage.height;
picture._xscale>picture._yscale ? picture._yscale=picture._xscale : picture._xscale=picture._yscale;
}
Ho aggiunto la funzione setPicture() ma le immagini non vengono caricate all'avvio, ma solo quanto il Listener riceve un azione (quando allargo la finestra del swf oppure clicco le frecce sulla tastera).
Grazie mille.

Rispondi quotando