Volledige versie bekijken : fullscreen foto
davehakkens
%Europe/Berlin %047 %2008, 01:08
hoi,
Dit vraag ik me al heel lang af:
Weet iemand hoe je een foto fullscreen als achtergrond kan zetten?
Deze moet zijn eigen verhouding houden maar wel kleiner worden naarmate je je venster verkleint.
Zoals hier: http://www.jamessutton.net/
En dan is er ook een functie met smoothing, ik weet alleen niet of dat bluf is.
Maar dat vond ik hier: http://www.flashden.net/files/6421/index.html
En een klein vraagje: Als je een object altijd bv. onderaan hebt staan, en je je venster verkleint gaat deze mee met je venster.
Maar hoe maak je (zoals 1e voorbeeld) dat hij er heel rustig naartoe gaat?
Bedankt, dave!
sander1
%Europe/Berlin %216 %2008, 05:12
Hoi!Weet iemand hoe je een foto fullscreen als achtergrond kan zetten?
Deze moet zijn eigen verhouding houden maar wel kleiner worden naarmate je je venster verkleint.Hiervoor kun je de te gebruiken foto schalen naar de "maximale" breedte of hoogte en de andere waarde daaraan aanpassen.En een klein vraagje: Als je een object altijd bv. onderaan hebt staan, en je je venster verkleint gaat deze mee met je venster.
Maar hoe maak je (zoals 1e voorbeeld) dat hij er heel rustig naartoe gaat?Dit kun je doen door de Tween klasse te gebruiken. Hieronder heb ik een voorbeeld gemaakt, ik denk namelijk dat dat veel duidelijker is dan het in woorden uit te gaan leggen:
*Demo (http://flashvideo.damnfinecoffee.eu/misc/scale_background/schalen.html)*
Stage.scaleMode = "noScale";
Stage.align = "TL"; // TL = Top Left
// Tween
import mx.transitions.Tween;
import mx.transitions.easing.*;
// Enkele benodigde variabelen
var nImgWidth:Number;
var nImgHeight:Number;
var nScale:Number;
// Bij het inladen van de afbeelding maak ik gebruik van de MovieClipLoader
var loader:MovieClipLoader = new MovieClipLoader();
var listener:Object= new Object();
listener.onLoadInit = function(mc:MovieClip):Void
{
nImgWidth = mc._width;
nImgHeight = mc._height;
scaleImage();
};
loader.addListener(listener);
// Nieuwe mc aanmaken
this.createEmptyMovieClip("mcPhoto", this.getNextHighestDepth());
// Afbeelding inladen
loader.loadClip("image.jpg", mcPhoto);
// Functie die bepaald hoe er geschaald moet worden
function scaleImage():Void
{
if ( Stage.height/Stage.width > nImgHeight/nImgWidth)
{
nScale = nImgWidth/nImgHeight;
mcPhoto._height = Stage.height;
mcPhoto._width = Stage.height*nScale;
}
else
{
nScale = nImgHeight/nImgWidth;
mcPhoto._height = Stage.width*nScale;
mcPhoto._width = Stage.width;
}
}
// Een listener die checkt of de Stage geschaald wordt
// Indien de Stage geschaald wordt, wordt de afbeelding ook opnieuw geschaald en wordt het menu opnieuw correct gepositioneerd
var myListener:Object = new Object();
myListener.onResize = function():Void
{
scaleImage();
// Menu opnieuw positioneren
menuX = new Tween(mcMenu, "_x", Strong.easeOut, mcMenu._x, (Stage.width-mcMenu._width)/2, 1, true);
menuY = new Tween(mcMenu, "_y", Strong.easeOut, mcMenu._y, Stage.height-mcMenu._height-10, 1, true);
};
Stage.addListener(myListener);
// Menu balkje laden
this.attachMovie("menu", "mcMenu", this.getNextHighestDepth());
mcMenu._alpha = 80;
mcMenu._x = (Stage.width-this._width)/2;
mcMenu._y = Stage.height-this._height-10;
stefan3548
%Europe/Berlin %475 %2008, 11:25
Superstrak.
Hier ben ik nu ook al zolang mee bezig. En nu weer een stapje in de goede richting maar hoe bouw je nu de rest van een site op? Ik bedoel iets op de stage plaatsen werkt niet meer.
Stefan
davehakkens
%Europe/Berlin %566 %2008, 13:36
wow, erg bedankt ja!
Maar als ik de HTML open zie ik die foto niet in de achtergrond, bij de swf echter wel.
Hoe komt dit?
bedankt hé!
sander1
%Europe/Berlin %074 %2008, 01:47
hoe bouw je nu de rest van een site op? Ik bedoel iets op de stage plaatsen werkt niet meer.Dat komt door het gebruik van createEmptyMovieclip in het actionscript gedeelte. Hierbij wordt met getNextHighestDepth de te laden movieclip als bovenste geladen. Dus als bovenste laag "over" je bestaande Stage heen. Je zult dus of de rest van je movieclips ook dynamisch moeten inladen, of de geladen foto-movieclip moeten ruilen (swapDepths (http://www.adobe.com/support/flash/action_scripts/actionscript_dictionary/actionscript_dictionary571.html)) met een andere, lager liggende (en reeds bestaande) movieclip.
Brinky
%Europe/Berlin %440 %2008, 11:34
Wow, indrukwekkend!
Maar is er ook een mogelijkheid dat ik een FLV kan inladen ipv een JPG?
Alvast bedankt :)
Jan
%Europe/Berlin %444 %2008, 11:39
Wow, indrukwekkend!
Maar is er ook een mogelijkheid dat ik een SWF of FLV kan inladen ipv een JPG?
Alvast bedankt :)
Ja kan allebei maar via de MovieClipLoader class kan je geen flv inladen. Maar met een tussenstap (FLV Playback class of in een simpel video object) kan dat ook.
loadClip (MovieClipLoader.loadClip method)
public loadClip(url:String, target:Object) : Boolean
Loads a SWF, JPEG, progressive JPEG, unanimated GIF, or PNG file into a movie clip in Flash Player while the original movie is playing. If you load an animated GIF, only the first frame is displayed. Using this method you can display several SWF files at once and switch between SWF files without loading another HTML document.
Groeten,
Jan
Brinky
%Europe/Berlin %447 %2008, 11:45
Bedankt voor je snelle antwoord. Ik had zelf al ondervonden dat een SWF inderdaad welk kan :)
Brinky
%Europe/Berlin %572 %2008, 14:43
Wat ik bij het voorbeeld van Sander1 zie, is dat het menu er al staat terwijl de foto nog niet geladen is.
Is hier een oplossing voor? Dat bijv. het menu pas zichtbaar wordt als de foto geheel geladen is?
Thanks
michielstax
%Europe/Berlin %567 %2009, 14:37
Beste mensen, ik heb deze code gebruikt als oplossing voor een fullscreen achtergrond. Deze werkt perfect, maar nu wil ik een menu in het midden van m'n flash plaatsen. Ik heb de code aangepast naar onderstaande, maar hij plaatst mijn menu niet helemaal in het midden. Het is er meer iets links en boven van... Wat doe ik fout?
Stage.scaleMode = "noScale";
Stage.align = "TL"; // TL = Top Left
// Tween
import mx.transitions.Tween;
import mx.transitions.easing.*;
// Enkele benodigde variabelen
var nImgWidth:Number;
var nImgHeight:Number;
var nScale:Number;
// Bij het inladen van de afbeelding maak ik gebruik van de MovieClipLoader
var loader:MovieClipLoader = new MovieClipLoader();
var listener:Object= new Object();
listener.onLoadInit = function(mc:MovieClip):Void
{
nImgWidth = mc._width;
nImgHeight = mc._height;
scaleImage();
};
loader.addListener(listener);
// Nieuwe mc aanmaken
this.createEmptyMovieClip("mcPhoto", this.getNextHighestDepth());
// Afbeelding inladen
loader.loadClip("images/achtergrond.jpg", mcPhoto);
// Functie die bepaald hoe er geschaald moet worden
function scaleImage():Void
{
if ( Stage.height/Stage.width > nImgHeight/nImgWidth)
{
nScale = nImgWidth/nImgHeight;
mcPhoto._height = Stage.height;
mcPhoto._width = Stage.height*nScale;
}
else
{
nScale = nImgHeight/nImgWidth;
mcPhoto._height = Stage.width*nScale;
mcPhoto._width = Stage.width;
}
}
// Een listener die checkt of de Stage geschaald wordt
// Indien de Stage geschaald wordt, wordt de afbeelding ook opnieuw geschaald en wordt het menu opnieuw correct gepositioneerd
var myListener:Object = new Object();
myListener.onResize = function():Void
{
scaleImage();
// Menu opnieuw positioneren
menuX = new Tween(mcMenu, "_x", Strong.easeOut, mcMenu._x, (Stage.width-mcMenu._width)/2, 1, true);
menuY = new Tween(mcMenu, "_y", Strong.easeOut, mcMenu._y, (Stage.height-mcMenu._height)/2, 1, true);
};
Stage.addListener(myListener);
// Menu balkje laden
this.attachMovie("menu", "mcMenu", this.getNextHighestDepth());
mcMenu._alpha = 80;
mcMenu._x = (Stage.width-this._width)/2;
mcMenu._y = (Stage.height-this._height)/2;
Aeronobe
%Europe/Berlin %699 %2009, 17:47
Ik meen mij ook zo iets te herinneren, dan positioneerde ik een knop in het midden van het scherm alsvolgt:
btn._x = (Stage.width / 2) - (btn._width / 2);
btn._y = (Stage.height / 2 ) - (btn._height / 2);
(wat eigenlijk hetzelfde is als jouwe, maar iets langer :) )
Ook stond hij dan ook elke keer teveel naar links en teveel naar boven.
Als ik hem echter in een .html file zette met SWFObject (weet niet of het verschil maakt, met of zonder), wat eigenlijk toch de bedoeling was uiteindelijk, dan kwam alles wel schoon in het midden..
Heb je al eens gekeken in een html file?
.
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.