Scala l'immagine in flash per abbinare formato definito in html
Domanda
Ho un filmato flash che carica le immagini in modo dinamico da un file XML. Voglio riutilizzare questo file .swf su pagine diverse, tuttavia le immagini nella pagina 1 sono tutti 400 x 200 e le immagini su page2 sono tutti 745 x 422. Quando provo a riutilizzare questo in un'altra pagina, le immagini caricate sono rattrappito (ridimensionato) -. vorrei che per abbinare che cosa è definito nella larghezza / altezza, ma ottengono scalati a seconda di come viene scalato la fase
im utilizzando un caricatore (AS3) per l'immagine che li pone su un contenitore (sprite)
slideLoader.load(new URLRequest(xmlSlideshow..image[intCurrentSlide].@src));
Ho provato rendendo la fase varie dimensioni per iniziare, ma vorrei piace essere irrelavant se possibile - cioè: 50 x 50. Poi in html larghezza / altezza verrebbe impostata sulla larghezza / altezza delle immagini di essere caricati.
Im non un mago flash in modo ti prego di perdonarmi se im non è chiaro, cercherò di dare un quadro più chiaro, se necessario.
Soluzione
Un paio di cose ... in primo luogo è necessario specificare la vostra applicazione non è in scala. (Codice AS3)
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
Poi una volta che l'immagine viene caricata (aggiungere un listener all'oggetto slideLoader), eseguire una funzione javascript utilizzando classe ExternalInterface del flash.
ExternalInterface.call('resizeFlashMovie', slideLoader.width, slideLoader.height);
E la funzione javascript sarebbe qualcosa di simile a questo:
function resizeFlashMovie(width, height) {
var flash = document.getElementById('yourFlashMovieId');
flash.style.width = width+'px';
flash.style.height = height+'px';
}
Altri suggerimenti
mi scuso non ho il codice a portata di mano, ma so che hai la possibilità di impostare un no-ridimensionare sulla tela in fase di avvio.
In teoria, è possibile passare in altezza / larghezza tramite gli attributi del tag sovrastante, hanno un non ridimensionamento sulla tela e utilizzare il passato in dimensioni per impostare le dimenions immagine.
Credo che questo sia esso:
fscommand("allowscale","false");