Mi trovo davanti ad un problema (apparentemente) complesso, senza riuscire a venirne a capo.
Riassumo brevemente, prima di entrare nei dettagli. Ho un filmato, in cui una serie di elementi vengono posizionati e/o ridimensionati in base alla dimensione dello stage. Tutto funziona perfettamente. C'è anche un movie clip che sta posizionato fuori dall'area visibile, e che entra 'in campo' quando richiamato da una funzione. Ora, finchè faccio la preview in Flash, anche questo funziona bene, ma quando vado a visualizzarlo nella finestra del browser, non si posiziona correttamente, anzi, di più, è come se si posizionasse (quando richiamato dalla funzione) 'autonomamente': infatti, anche cambiando i valori relativi alla posizione, nel browser va a collocarsi sempre alle stesse coordinate x/y.
Adesso il dettaglio.
Nel primo frame della trimeline ho questo codice:
codice:
Stage.align = "tl";
Stage.scaleMode = "showAll";
var wdth = Stage.width;
var hght = Stage.height;
Stage.scaleMode = "noScale";
controllo = new Object();
controllo.onResize = function() {
w = Stage.width;
h = Stage.height;
cx = (w-wdth)/2;
cy = (h-hght)/2;
_root.xdim = w;
_root.ydim = h;
};
Stage.addListener(controllo);
MovieClip.prototype.move = function(y) {
this._y += (y-this._y)/4;
};
MovieClip.prototype.move2 = function(x) {
this._x += (x-this._x)/4;
};
MovieClip.prototype.move3 = function(y, x) {
this._y += (y-this._y)/4;
this._x += (x-this._x)/4;
};
al 5° frame, c'è quest'altro codice, che posiziona i vari elementi 'fissi':
codice:
this.onEnterFrame = function() {
past1.move(h-0);
past1.move2(235);
menu.move2(210);
logo.move2(w-223);
exit.move2(w-60);
audioc.move(h-1);
audioc.move2(w-70);
carta._xscale = carta._yscale=w/10;
sheet._xscale = sheet._yscale=w/12;
sheet.move3((h-sheet._yscale*6)-20, w-sheet._xscale*8);
tgt.move3(h-100, w-500);
peppers.move3(0, -40);
};
stop();
nello stesso frame, definisco la mia funzione:
codice:
_root.sack = 0;
function show(photo) {
var temp = photo.split("§");
var img = _root.uno = temp[0];
var opn = _root.due = temp[1];
var cls = _root.tre = temp[2];
if (_root.sack == 1) {
} else {
_root.sacco.foto.gotoAndPlay(2);
_root.sacco.foto.loadfoto.loadMovie(img);
_root.gotoAndPlay(opn);
}
_root.sack = 1;
}
la funzione è richiamata dal testo caricato dinamicamente in un textfield; il file di testo caricato dinamicamente contiene delle stringhe del tipo:
codice:
Sformati<font color="#FF0000">(GUARDA)</font>
il passaggio di queste variabili, comunque, avviene tranquillamente.
Nel frame corrispondente alla variabile 'opn' (vedi sopra), c'è questo codice:
codice:
var posy = _root.ydim;
var posx = _root.xdim;
_root.onEnterFrame = function() {
_root.sacco.move3(posy-120, posx-550);
};
mentre nel frame corrispondente alla variabile 'cls', c'è questo:
codice:
_root.onEnterFrame = function() {
_root.sacco.move3(posy+120, posx-500);
};
Come ho detto, nella preview tutto funziona bene, ma nel browser no; il mc 'sacco' si va a posizionare diversamente, in particolare molto più in basso del dovuto, ed anche se cambio i valori delle coordinate target, continua a posizionarsi allo stesso posto.
Ovviamente, nella pagina html il filmato Flash è impostato a width="100%" height="100%"...
Idee/suggerimenti?