Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Resize eksternog swf-a ali nesto malo drugacije

[es] :: Flash :: Resize eksternog swf-a ali nesto malo drugacije

[ Pregleda: 1915 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ivica Vujović
Ivica Vujović
Beograd

Član broj: 44727
Poruke: 127



+5 Profil

icon Resize eksternog swf-a ali nesto malo drugacije20.07.2011. u 12:23 - pre 155 meseci
Elem, kao sto naslov kaze. Situacija je sledeca:

U nekom html fajlu je podeseno da se ucitava flash fajl i da automatski radi resize na 100% width i height-a. I to radi lepo. Medjutim, unutar njega se poziva jos jedan swf fajl koji se takodje resizuje zajedno sa njim. E sad, to ne izgleda uvek lepo. Zanima me, postoji li neki nacin da se taj swf fajl resize-uje po sirini i duzini ali da sacuva proporcije. Znaci da ako je taj spoljnji swf odnosa 4:3 treba i da ostane u tom odnosu bez obzira da li je ekran 16:9 ili neki drugi, a da se margine od okvira monitora podesavaju posebno.

Iskreno, nemam blage ni kako bih trazio ovo po guglu. Pokusao sam nesto ali nisam uspeo da naletim na nesto slicno. Kapiram da je komplikovanije, pa ako neko ima ideju na sta da se uputim, javite.

Edit: nasao sam nesto slicno onome sto sam pricao ali je u pitanju samo resize movieclipa ne i eksternog swf fajla.

http://www.greensock.com/as/LiquidStage/

[Ovu poruku je menjao Trbonja dana 20.07.2011. u 14:32 GMT+1]
 
Odgovor na temu

MenOfHonor
Bojan Mihajlović
Beograd

Član broj: 118521
Poruke: 266
*.3gnet.mts.telekom.rs.



+28 Profil

icon Re: Resize eksternog swf-a ali nesto malo drugacije20.07.2011. u 15:11 - pre 155 meseci
Mislim da to ne možeš da uradiš, zato što učitani swf postaje sastavni deo glavnog swf-a i ne tretira se kao odvojeni swf fajl. Inače, kada želiš da proporcije swf-a ostanu nepromenjene i kada dođe do promene dimenzija prozora pretraživača koristiš NO_SCALE konstantu scaleMode svojstva stage-a:
Code:
stage.scaleMode = StageScaleMode.NO_SCALE;

Međutim, kada bi u swf-u koji učitavaš to naveo dobio bi grešku u glavnom swf-u, jer glavni swf ima svoj stage tako da bi to morao da navedeš za Loader objekat u kojem će se nalaziti učitani swf:
Code:
import flash.net.URLRequest;
import flash.display.Loader;
import flash.events.Event;

var urlZahtev:URLRequest = new URLRequest("fiksiraniSWF.swf");
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, ucitanSWF);

function ucitanSWF(event:Event):void
{
    addChild(loader);
    loader.stage.scaleMode = StageScaleMode.NO_SCALE;
}

loader.load(urlZahtev);

Ovde se dešava to da iako smo naveli da se učitani swf ne skalira to isto se odnosi i na glavni swf, tako da u tom slučaju neće doći do njegove promene dimenzija što se ne uklapa u ono što si zamislio.
Pogledajte odličnu knjigu ActionScript 3.0: Visual QuickStart Guide na Safari Books Online unošenjem kupon koda TPJVJGA: https://ssl.safaribooksonline.com/safarienabled
Obavezno pogledati besplatan tutorijal "Installing Apache, MySQL, and PHP" na lynda.com: http://www.lynda.com/MySQL-5-t...che-mysql-and-php/77958-2.html
 
Odgovor na temu

Ivica Vujović
Ivica Vujović
Beograd

Član broj: 44727
Poruke: 127



+5 Profil

icon Re: Resize eksternog swf-a ali nesto malo drugacije20.07.2011. u 15:46 - pre 155 meseci
Hm... Nije ni cudo onda sto nisam nista nasao. Genralno mi nije toliko bitna stvar, ali me zanimalo moze li to za neke buduce primene. Razgovaras sa ljudima koji gledaju sve te sajtove i padnu im na pamet najcudnije stvari. Tako se i izrodilo ovo pitanje.

Da i recimo na primeru casopisa uradjenog u flashu:

http://www.flippagemaker.com/e...ook-creator/demo2/example.html

Kako oni uspevaju da sam magazin zadrzi proporcije iako se background menja?
 
Odgovor na temu

MenOfHonor
Bojan Mihajlović
Beograd

Član broj: 118521
Poruke: 266
*.3gnet.mts.telekom.rs.



+28 Profil

icon Re: Resize eksternog swf-a ali nesto malo drugacije20.07.2011. u 16:57 - pre 155 meseci
Verovatno su koristili align svojstvo stage-a i naveli su konstantu TOP_LEFT kako bi slika ostala fiksirana:
Code:
stage.align = StageAlign.TOP_LEFT;

Pogledajte odličnu knjigu ActionScript 3.0: Visual QuickStart Guide na Safari Books Online unošenjem kupon koda TPJVJGA: https://ssl.safaribooksonline.com/safarienabled
Obavezno pogledati besplatan tutorijal "Installing Apache, MySQL, and PHP" na lynda.com: http://www.lynda.com/MySQL-5-t...che-mysql-and-php/77958-2.html
 
Odgovor na temu

MenOfHonor
Bojan Mihajlović
Beograd

Član broj: 118521
Poruke: 266
*.3gnet.mts.telekom.rs.



+28 Profil

icon Re: Resize eksternog swf-a ali nesto malo drugacije24.07.2011. u 19:07 - pre 155 meseci
Nakon malo eksperimentisanja došao sam do rešenja za tvoj problem. Moguće je skalirati glavni swf uz očuvanje proporcija učitanog swf-a, ali uz poštovanje nekih pravila:
1. Mora se koristiti NO_SCALE konstanta za scaleMode svojstvo stage-a:
Code:
stage.scaleMode = StageScaleMode.NO_SCALE;

2. Možeš da koristiš TOP_LEFT konstantu kako bi prikazao pozadinu preko celog stage-a:
Code:
stage.align = StageAlign.TOP_LEFT;

3. Mora se dodati event listener na stage za događaj Event.RESIZE koji će pozivati funkciju svaki put kada se dimenzije stage-a promene:
Code:
stage.addEventListener(Event.RESIZE, promenjeneDimenzije);

4. Sav kod za glavni swf kod koga će se menjati dimenzije kada se menjaju dimenzije prozora mora se navesti u okviru te funkcije ili da se iz nje pozove druga funkcija u kojoj se nalazi taj kod:
Code:
function promenjeneDimenzije(event:Event):void
{
    // ovde pišeš kod kojim će se menjati dimenzije objekata u glavnom swf-u, na primer ako imaš pozadinsku sliku napisaćeš:
    pozadina.width = stage.stageWidth;
    pozadina.height = stage.stageHeight;
    // možeš i da iz ove funkcije pozoveš funkciju u kojoj se nalazi kod za promenu dimenzija objekata
    mojaFunkcija();
}


Da bi ti bilo jasnije najbolje je da pogledaš primer: http://dhost.info/manofhonor/skaliranje/skaliranje.html. Svaki put kada se dimenzije prozora pretraživača menjaju u dinamičkom tekst polju koje se nalazi u učitanom swf-u ispisuju se dimenzije stage-a, kao i dimenzije tog swf-a koje su fiksirane. Učitani swf zadržava svoje dimenzije i uvek se prikazuje na sredini glavnog swf-a. Nadam se da ti je ovo pomoglo. Javi da li si uspeo da primeniš ovo u tvom projektu. ;)
Pogledajte odličnu knjigu ActionScript 3.0: Visual QuickStart Guide na Safari Books Online unošenjem kupon koda TPJVJGA: https://ssl.safaribooksonline.com/safarienabled
Obavezno pogledati besplatan tutorijal "Installing Apache, MySQL, and PHP" na lynda.com: http://www.lynda.com/MySQL-5-t...che-mysql-and-php/77958-2.html
 
Odgovor na temu

Ivica Vujović
Ivica Vujović
Beograd

Član broj: 44727
Poruke: 127



+5 Profil

icon Re: Resize eksternog swf-a ali nesto malo drugacije29.07.2011. u 14:18 - pre 155 meseci
Hm.. Tek sad sam ovo video. Probacu ovo za vikend pa javljam kako sam prosao.

Edit: probao sam i blizu je ali nije bas to to. Ok je sto se ne skalira i to je super, ali ono sto sam hteo je i da se radi resize i spoljnog swf objekta ali da se zadrze proporcije na ekranu. Nesto kao na ono casopisu sto sam postavio kao primer. Vidis, onde se resizuje prozor ali spoljni swf prati resize samo do neke tacke. Znaci odrzavaju se dimenzije samog magazina (koji je u stvari spoljni swf i ima oblik A4 papira). Uzmi i smanji prozor do neke tacke i pocni da ga siris po sirini npr. Videces da se magazin samo pozicionira na sredinu ali ne ide u sirinu. Ako posle uzmes da siris po visini videces da se magazin siri kako se povecava stage. Sve dok ne udari u "ivice" stagea nakon cega prestaje da se povecava. E to me zanima jel moze.

Razlog je prost. Ako imam npr kocku sa nekim tekstom po sredini, i nekog ko ima nenormalnu rezoluciju na 24 inca, on tu kocku moze lepo da vidi ako mu se ona prilagodi njegovom ekranu, tj stageu. Ako krene da se izoblicava i tekst ce biti izoblicen sto ne izgleda nikako lepo. A ako ostane u rezoluciji npr 700x500 nece se videti nista jer je previse malo za onoliki ekran.

Nadam se da nisam previse konfuzan bio.

[Ovu poruku je menjao Ivica Vujović dana 31.07.2011. u 14:40 GMT+1]
 
Odgovor na temu

MenOfHonor
Bojan Mihajlović
Beograd

Član broj: 118521
Poruke: 266
*.3gnet.mts.telekom.rs.



+28 Profil

icon Re: Resize eksternog swf-a ali nesto malo drugacije05.08.2011. u 21:08 - pre 154 meseci
Sad videh tvoju poruku. To što si zamislio je lako ostvarivo. Prvo treba da utvrdiš do koje tačke želiš da se menja veličina učitanog swf-a a zatim korišćenjem uslovnih izraza možeš da fiksiraš njegovu veličinu kada dostigne tu granicu. Na primer ako je veličina učitanog swf-a 700x700 px i ako želiš da se njegove dimenzije menjaju sve dok se ne dostigne 400x400 px, to možeš postići tako što ćeš napisati dva uslova za širinu i visinu:
Code:
if(loader.width <= 400)
    {
        loader.width = 400;
    }
    if(loader.height <= 400)
    {
        loader.height = 400;
    }

Ove uslove, kao i visinu i širinu swf-a, upisuješ u funkciji koja se poziva kada se promene dimenzije stage-a. Simple as that.
Pogledajte odličnu knjigu ActionScript 3.0: Visual QuickStart Guide na Safari Books Online unošenjem kupon koda TPJVJGA: https://ssl.safaribooksonline.com/safarienabled
Obavezno pogledati besplatan tutorijal "Installing Apache, MySQL, and PHP" na lynda.com: http://www.lynda.com/MySQL-5-t...che-mysql-and-php/77958-2.html
 
Odgovor na temu

Ivica Vujović
Ivica Vujović
Beograd

Član broj: 44727
Poruke: 127



+5 Profil

icon Re: Resize eksternog swf-a ali nesto malo drugacije17.08.2011. u 18:59 - pre 154 meseci
Nesto mi ovo nije uspelo... Menja se kako god sa stage-om ali opet izgleda izobliceno. Hvala na idejama u svakom slucaju...
 
Odgovor na temu

[es] :: Flash :: Resize eksternog swf-a ali nesto malo drugacije

[ Pregleda: 1915 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.