Autor Zpráva
vektor
Profil *
Ahoj, chci načíst do movieclipu externí swf soubor a ten zmenšit podle nejdelší strany movieclipu, ale mám problém:

import flash.events.*;
import flash.display.DisplayObjectContainer;
import flash.display.Loader;
import flash.net.URLRequest;

var scaling:Number=0;
var sirka:Number=obrazek.width;
var vyska:Number=obrazek.height; 

var loader:Loader = new Loader();
function nactiSWF(tg:MovieClip,src:String) {
 loader.contentLoaderInfo.addEventListener(Event.COMPLETE, dokonceno);
 loader.contentLoaderInfo.addEventListener(Event.OPEN, zapocato);
 loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, chyba);
 loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, stav);
 var request:URLRequest = new URLRequest(src);
 loader.load(request);
 loader.name = "soubor";
// loader.height = vyska;

 tg.addChild(loader);
}
function chyba(e:IOErrorEvent):void {
 trace("chyba nacitani");
}
function zapocato(e:Event):void {
 trace("start nacitani");
}
function stav(e:ProgressEvent):void {
 trace("stav nacitani: nacteno: " + e.bytesLoaded + " z celkem: " + e.bytesTotal);
}
function startLoad(evt:Event):void {
 if(obrazek.getChildByName("soubor")){
  obrazek.removeChild(obrazek.getChildByName("soubor"));
 };	
 nactiSWF(obrazek,"tricko.swf");
}
function dokonceno(e:Event):void {
 trace("nacteno"); 
 if(sirka>vyska){
  scaling=vyska/obrazek.getChildByName("soubor").height;
 } else {
  scaling=sirka/obrazek.getChildByName("soubor").width;
 };
 trace(scaling);
 obrazek.getChildByName("soubor").width=obrazek.getChildByName("soubor").width*scaling;
 obrazek.getChildByName("soubor").height=obrazek.getChildByName("soubor").height*scaling;
 obrazek.getChildByName("soubor").x=0;
 obrazek.getChildByName("soubor").y=0;
}
function barva(evt:Event){
 //
}
btn.addEventListener(MouseEvent.CLICK,startLoad);
buti.addEventListener(MouseEvent.CLICK,barva);



Tohle funguje. Dobře. Ale dejme tomu že bych chtěl obrázek zmenšit o trochu víc, abych ho následně v movie clipu vycentroval na výšku i šířku.


import flash.events.*;
import flash.display.DisplayObjectContainer;
import flash.display.Loader;
import flash.net.URLRequest;

var scaling:Number=0;
var sirka:Number=obrazek.width;
var vyska:Number=obrazek.height; 

var loader:Loader = new Loader();
function nactiSWF(tg:MovieClip,src:String) {
 loader.contentLoaderInfo.addEventListener(Event.COMPLETE, dokonceno);
 loader.contentLoaderInfo.addEventListener(Event.OPEN, zapocato);
 loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, chyba);
 loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, stav);
 var request:URLRequest = new URLRequest(src);
 loader.load(request);
 loader.name = "soubor";
// loader.height = vyska;

 tg.addChild(loader);
}
function chyba(e:IOErrorEvent):void {
 trace("chyba nacitani");
}
function zapocato(e:Event):void {
 trace("start nacitani");
}
function stav(e:ProgressEvent):void {
 trace("stav nacitani: nacteno: " + e.bytesLoaded + " z celkem: " + e.bytesTotal);
}
function startLoad(evt:Event):void {
 if(obrazek.getChildByName("soubor")){
  obrazek.removeChild(obrazek.getChildByName("soubor"));
 };	
 nactiSWF(obrazek,"tricko.swf");
}
function dokonceno(e:Event):void {
 trace("nacteno"); 
 if(sirka>vyska){
  scaling=vyska/obrazek.getChildByName("soubor").height;
 } else {
  scaling=sirka/obrazek.getChildByName("soubor").width;
 };
 trace(scaling);
 scaling = scaling-0.4;
 obrazek.getChildByName("soubor").width=obrazek.getChildByName("soubor").width*scaling;
 obrazek.getChildByName("soubor").height=obrazek.getChildByName("soubor").height*scaling;
 obrazek.getChildByName("soubor").x=0;
 obrazek.getChildByName("soubor").y=0;
}
function barva(evt:Event){
 //
}
btn.addEventListener(MouseEvent.CLICK,startLoad);
buti.addEventListener(MouseEvent.CLICK,barva);



Přidal sem řádek scaling = scaling-0.4; ale při každém kliku na button je obrázek vždy jinak velký :(

start nacitani
stav nacitani: nacteno: 0 z celkem: 948
stav nacitani: nacteno: 948 z celkem: 948
nacteno
0.48658731568662295
start nacitani
stav nacitani: nacteno: 0 z celkem: 948
stav nacitani: nacteno: 948 z celkem: 948
nacteno
5.618461538461539
start nacitani
stav nacitani: nacteno: 0 z celkem: 948
stav nacitani: nacteno: 948 z celkem: 948
nacteno
1.0766509433962266
start nacitani
stav nacitani: nacteno: 0 z celkem: 948
stav nacitani: nacteno: 948 z celkem: 948
nacteno
1.5910543130990418
start nacitani
stav nacitani: nacteno: 0 z celkem: 948
stav nacitani: nacteno: 948 z celkem: 948
nacteno
1.335771762984638


Pokud tam ten řádek není funguje to skvěle... Poraďte, prosím.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: