Volledige versie bekijken : fullscreen foto achtergrond
martie molenaar
%Europe/Berlin %810 %2008, 20:27
Beste FFérs,
Ik laadt extern een foto in en wil dat deze zich aanpast aan het volledige browser.
Het werkt op zich wel maar als de breedte minder is dan de hoogte ga je onder een steeds groter wit vlak zien. ik wil dat de foto dan gewoon stopt met scalen bijv.
hoe doe ik dit
dit is nu mijn code;
var mcLoader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
listener.onLoadInit = function(target:MovieClip):Void {
target._width = Stage.width
target._yscale = target._xscale
TweenLite.to(target._parent, 1,{_x:0, ease:Strong.easeOut})
TweenLite.to(latestContainer,1,{_x:-(Stage.width), ease:Strong.easeOut, onComplete:removeLastContainer, onCompleteParams:[latestContainer]});
makingArrow(container)
latestContainer = container;
}
mcLoader.addListener(listener);
mcLoader.loadClip(plaatje, container.photoContainer);
michelsteege
%Europe/Berlin %845 %2008, 21:18
zo doe ik het altijd:
if(movieclip._width < Stage.width){
movieclip._width = Stage.width;
movieclip._xscale = movieclip._yscale
}
if(movieclip._height < Stage.height){
movieclip._height = Stage.height;
movieclip._yscale = movieclip._xscale
}
daarmee schaalt die in verhouding tot die scherm vullend is ;)
martie molenaar
%Europe/Berlin %869 %2008, 21:52
Maar hij schaalt niet mee als je de browser sleept
martie molenaar
%Europe/Berlin %876 %2008, 22:02
Er staat nu alleen als die kleiner is bij beide maar wat als de foto groter is, dan blijft het een super grote foto dus mis je heel veel.
michelsteege
%Europe/Berlin %879 %2008, 22:06
ah zo dat is wat je wil, dan hier eerst een artikel over stage resize:
http://www.flashfocus.nl/forum/showthread.php?p=173857#post173857
met dat moet je er wel uit komen voor het schalen als je de browser sleept,
nu over het groter dat is opzich geen probleem dan word het gewoon zo:
movieclip._width = Stage.width;
movieclip._yscale = movieclip._xscale
if(movieclip._height < Stage.height){
movieclip._height = Stage.height;
movieclip._xscale = movieclip._yscale
}
je zet hem hiermee altijd even breed (en hoog) in verhouding als de Stage, maar als na de breedte de hoogte te klein is verhoog je die weer en vereken je het weer met de breedte ;)
martie molenaar
%Europe/Berlin %891 %2008, 22:23
thnx, die laatste werkt precies goed, wat echter heel vreemd is, is dat het eerste plaatje dat binnenkomt prima is, druk ik op next dan komt er een nieuw plaatje die ineens niet fullscreen is:S, zou je mij kunnen helpen?
http://martmolenaar.nl/voorbeeld/
De eerste doet het prima, dan komt de tweede die gaat fout. Maar als je dan gaat resizen doet ie het wel weer en ik gebruik dezelfde code.
michelsteege
%Europe/Berlin %900 %2008, 22:37
ik zie maar 1 en dezelfde afbeelding telkens... wel een hele vreemde trouwens, maar wat het probleem is als ik het zo hoor dat als je op next drukt je de code niet uitvoert voor het schalen ik denk alleen als je een resize doet ;) dus dan moet je zorgen dat die de code ook gaat doen als je op next drukt :)
nu is het tijd om mijn bed op te zoeken :P
martie molenaar
%Europe/Berlin %902 %2008, 22:39
Thnx, ik ga de boel even uitzoeken, bedankt ik elk geval
dit is mijn stageresult;
function stageResult()
{
imageContainer._width = Stage.width;
imageContainer._yscale = imageContainer._xscale
if(imageContainer._height < Stage.height){
imageContainer._height = Stage.height;
imageContainer._xscale = imageContainer._yscale
}
}
theFlashWizard
%Europe/Berlin %610 %2008, 15:39
Hey Mart,
Volgens mij komt het omdat je imageContainer schaalt. In deze container zet je voor elk plaatje apart nog een container. (Betere namen zouden dit een stuk duidelijker maken.) Bij next klikken zitten er nog 2 containers in deze imageContainer, hij is daarom breder en zal daarom een ander resultaat geven. Als je de stage nog tijdens de tween resized krijg je hetzelfde resultaat.
Een oplossing kan zijn om de containers apart te resizen.
martie molenaar
%Europe/Berlin %676 %2008, 17:14
Ik heb alles in 1 container gedaan omdat ik de foto's in de onderste laag wil. zodat je andere dingen daarboven hebt. Hoe kan ik dit probleem oplossen?
Het vreemde is ook dat het resizen van de browser prima gaat en alles goed gaat ( resizen imagecontainer ) maar het inladen niet.
theFlashWizard
%Europe/Berlin %694 %2008, 17:40
De containers in image container per stuk resizen.
Het gaat dan niet goed omdat op het moment van inladen er 2 containers in diezelfde imageContainer zijn. Wanneer je daarna je stageresized is vaak de 2de container alweer verwijdert. (Tenzij je dit heel snel doet).
martie molenaar
%Europe/Berlin %721 %2008, 18:19
Maar dat resize ik toch al apart, ik resize de target in de onload init, dat is de container in de imageContainer. Ik kom er niet echt uit omdat het resizen met veranderen van browser goed gaat. Hoe moet ik dan continu alles apart resizen? doe ik dat in de onload init? en hoe resize ik dan binnen de stageresult imageContainer.container?
heb het al denk ik!
theFlashWizard
%Europe/Berlin %969 %2008, 00:16
In het voorbeeld dat ik heb gehad in je mailtje resize je in bijde gevallen de imageContainer. (Trouwens erg onhandig dat je dit script 2x hebt gekopieerd, je kan het beter apart zetten in een functie en die vanaf 2 plekken aanroepen.
Hm het is een beetje vervelend dat je in as2.0 niet makkelijk door kinderen heen kan loopen. Hierdoor zul je deze dus zelf moeten onthouden, bijv. in een array met bestaande containers.
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.