Ciao a tutti
ho fatto un semplice news ticker ma mi da uno strano problema...
unica cosa da dire è che nel codice importo un swf esterno
1) volevo chiedervi come inserire la velocità nello scorrimento (in modo che quando passo il mouse aggiungo l'ascoltatore sul mouse over a velocità 0)...e non ci sono riuscito
2) mi da un errore (scavalcato perchè ho inserito direttamente la cifra)...perchè se importo un swf esterno con la classe Loader, chiamando la variabile ldr se richiedo quindi ldr.height non mi da subito l'altezza ma aspetta un pò? ho fatto il trace ma me lo da solo dopo 3 letture nell'evento per il movimento...
di seguito il codice è commentato e quindi è tutto meglio spiegato li (non so come si inserisce il testo qui in formato tag per poterlo leggere meglio, quindi lo incollo il codice normalmente)
grazie in anticipo per l'aiuto
import flash.display.*;
import flash.net.URLRequest;
//creazione del rettangolo contenitore in modo da far scomparire
// il testo quando raggiunge i suoi bordi.
var rect:Shape = new Shape();
rect.graphics.beginFill(0xFFFFFF);
rect.graphics.drawRect(100, 100, 300, 400);
rect.graphics.endFill();
addChild(rect);
//utilizzo della classe Loader per importare il file swf esterno
var ldr:Loader = new Loader();
ldr.mask = rect;
var url:String = "2.swf";
var urlReq:URLRequest = new URLRequest(url);
ldr.load(urlReq);
//100 perchè bisogna calcolare anche la posizione del rettangolo, cioè la posizione del file swf
// è calcolato rispetto lo stage anche se sarà inserito all'interno del rettangolo contenitore,
// es. il punto x=0 e y=0 saranno calcolate in base allo stage quindi si troverà in alto a sinistra
// dello stage, quindi se il contenitore si troverà al centro il file importato non verrà
// visualizzato perchè uscirà fuori l'area del rettangolo.
// tutto il contenuto del file swf importato è stato racchiuso tutto in un simbolo il cui contenuto
// è stato impostato con il centro di puntamento in alto a sinistra, in modo da poter meglio
// calcolare l'uscita del file importato dal rettangolo in questo modo:
ldr.y=100+rect.height; // il valore 100 l'ho spiegato su...
ldr.x=100;
addChild(ldr);
//questi 2 script sono inutili perchè non verrà mai calcolato il valore dell'altezza del ldr
// darà sempre valore 0 e non 500 come è correttamente alto il file.
//var altezza:uint =new uint();
//altezza =ldr.height;
trace(ldr.height); // qui il problema mi da 0 anche se il file importato è alto 500px
//aggiungo l'ascoltatore per animare il testo e l'eventualità di ritorno a capo e relativa pausa
ldr.addEventListener(Event.ENTER_FRAME,scrollatest o);
function scrollatesto(e:Event):void
{
ldr.y--;
if (ldr.y == 100-502)
{
ldr.y=100+rect.height;
}
trace(ldr.height); // qui invece mi da tre volte 0 e poi mi da sempre 500 cioè il valore giusto
//perchè mi da 0 inizialmente? sopra così non posso far calcolare l'altezza del file importato
// quindi sarò costretto ad inserire sempre il numero equivalente all'altezza, quindi sarò
// costretto a cambiare ogni qualvolta questo valore. Come faccio a fargli dare l'altezza
//dall'inizio?
}

Rispondi quotando