PDA

Volledige versie bekijken : afbeelding schalen


Joshua_abdon_sly
%Europe/Berlin %519 %2008, 13:27
Beste FF'ers

Ik ben net gestart met de uitwerking van mijn site.
Nu kom ik al een eerste probleem tegen, in mijn bibliotheek zit een afbeelding dat ik wil schalen telkens als de browser geschaald wordt.

dit is de code:

this.attachMovie("bgpic", "bgpic_mc", this.getNextHighestDepth(), {_x:0, _y:0});
bgpic_mc._height = Stage.height;
bgpic_mc._width = bgpic.width*(Stage.height/bgpic._height);

Het is de bgpic_mc.width die niet mee wil werken.

mvg
Josh

Sushi
%Europe/Berlin %529 %2008, 13:42
moet er niet staan : met + erbij

bgpic_mc._width += bgpic.width*(Stage.height/bgpic._height);

Joshua_abdon_sly
%Europe/Berlin %537 %2008, 13:54
Met die + erbij werkt het ook niet.

Nog een suggestie?

grtz

Sushi
%Europe/Berlin %544 %2008, 14:03
het ligt iig aan het laatste stukje, probeer eerst te kijken of dit werkt :

bgpic_mc._width = 100 //of een ander getal

werkt dat wel, dan doe je iets fout in dit gedeelte : bgpic.width*(Stage.height/bgpic._height); en Stage.height;

Joshua_abdon_sly
%Europe/Berlin %548 %2008, 14:09
oke, ik doe dus iets fout in het laatste gedeelte.

De stageheight werkt goed.

Maar wat weet ik niet??

bgpic.width*(Stage.height/bgpic._height)

Hiermee wil ik dat de breedte van de afbeelding geschaald wordt met gelijke grote als de hoogte van de afbeelding. :S
Kan het zijn dat ik niet rechtstreeks de afbeeldingsbreedte en hoogte kan nemen?

grtz

Jan
%Europe/Berlin %551 %2008, 14:14
Nu kom ik al een eerste probleem tegen, in mijn bibliotheek zit een afbeelding dat ik wil schalen telkens als de browser geschaald wordt.
http://www.flashfocus.nl/forum/showthread.php?t=6338#full%20browser%20flash
http://www.adobe.com/livedocs/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002692.html

bgpic.width
het moet _width zijn ...
En bgpic is de linkage ID van de library, die kan je niet aanspreken als instance name.
De instance name is bgpic_mc
Groeten,
http://users.telenet.be/jansurf/cwo.png Jan

Joshua_abdon_sly
%Europe/Berlin %559 %2008, 14:25
Bedankt voor de opmerking Jan, maar het lijkt nog niet te werken.

Als ik de bgpic._width en _height vervang door de exacte waarden, dan werkt dit wel...

Het is wat minder professioneel, maar het werkt!

this.attachMovie("bgpic", "bgpic_mc", this.getNextHighestDepth(), {_x:0, _y:0});
bgpic_mc._height = Stage.height;
bgpic_mc._width = 200*(Stage.height/300);

bedankt voor de hulp.

Grtz Josh

Sushi
%Europe/Berlin %575 %2008, 14:48
bgpic_mc._width += bgpic_mc._width*(Stage.height/bgpic_mc._height);

dit zou moeten werken. Had idd het liggende streepje over het hoofd gezien

Joshua_abdon_sly
%Europe/Berlin %643 %2008, 16:26
bgpic_mc._width += bgpic_mc._width*(Stage.height/bgpic_mc._height);

Als ik deze code gebruik dan, telkens als ik de browser resize, blijft de breedte zich vergroten.
Dus zal er nog een kleine fout inzitten vrees ik.

grtz

Sushi
%Europe/Berlin %651 %2008, 16:37
bgpic_mc._width* moet weg
word dus :
bgpic_mc._width += 200*Stage.height/bgpic_mc._height;
want je wilt de breedte = image breedte * stage hoogte gedeelt door image hoogte?

bgpic_mc._width* met dit erbij doet ie elke keer wat de breedte is keer wat het moet worden, dus vandaar. Als je dan weer resized is de bg groter * nog een keer groter.

200 staat vast in je code maar zodra je bgpic_mc._width gebruikt veranderd hij constant.

kan ook zijn dat je alleen het plusje + moet weg halen. Want die zorgt ervoor dat het erbij moet.

Jan
%Europe/Berlin %655 %2008, 16:43
kan ook zijn dat je alleen het plusje + moet weg halen. Want die zorgt ervoor dat het erbij moet.
Vooral dat...
Je telt altijd maar op bij de vorige waarde...

Groeten,
http://users.telenet.be/jansurf/cwo.png Jan

furrie
%Europe/Berlin %657 %2008, 16:47
moet het ook niet stage._height in plaats van stage.height ?

Jan
%Europe/Berlin %659 %2008, 16:49
moet het ook niet stage._height in plaats van stage.height ?Nee, maar wel met een hoofdletter. :P
Groeten,
http://users.telenet.be/jansurf/cwo.png Jan

Joshua_abdon_sly
%Europe/Berlin %668 %2008, 17:02
Het lijkt erop dat dit niet zo simpel is :D

de code werkt nog steeds niet...

Wat wel werkt is dit gedeelte:

this.attachMovie("bgpic", "bgpic_mc", this.getNextHighestDepth(), {_x:0, _y:0});
bgpic_mc._height = Stage.height;
bgpic_mc._width += 200*Stage.height/bgpic_mc._height;

Maar wanneer ik het verder gebruik in de code (als ik de browser resize) dan lukt dit niet:

stageL.onResize = function() {
cover_mc._y = Stage.height/2;
cover_mc._x = Stage.width/2;
bgpic_mc._height = Stage.height;
bgpic_mc._width += 200*Stage.height/bgpic_mc._height;
};

Ik heb al het + teken weggelaten in het tweede deel, maar dan springt het naar de originele breedte... :(

grtz

Jan
%Europe/Berlin %674 %2008, 17:11
this.attachMovie("bgpic", "bgpic_mc", this.getNextHighestDepth(), {_x:0, _y:0});
bgpic_mc._height = Stage.height;
bgpic_mc._xscale=bgpic_mc._yscale;

stageL.onResize = function() {
cover_mc._y = Stage.height/2;
cover_mc._x = Stage.width/2;
bgpic_mc._height = Stage.height;
bgpic_mc._xscale=bgpic_mc._yscale;
};
of als de aspect ratio niet belangrijk is:
this.attachMovie("bgpic", "bgpic_mc", this.getNextHighestDepth(), {_x:0, _y:0});
bgpic_mc._height = Stage.height;
bgpic_mc._width = Stage.width;

stageL.onResize = function() {
cover_mc._y = Stage.height/2;
cover_mc._x = Stage.width/2;
bgpic_mc._height = Stage.height;
bgpic_mc._width = Stage.width;
};
Groeten,
http://users.telenet.be/jansurf/cwo.png Jan

Joshua_abdon_sly
%Europe/Berlin %677 %2008, 17:15
Het eerste was wat ik zocht!

BEDANKT!

grtz
Josh

furrie
%Europe/Berlin %678 %2008, 17:16
ook al geprobeerd om de gescalede grote van het scherm te nemen en dat te delen door de normale grote en dan de scale van de bgpic_mc daar op te zetten, dus iets als het volgende:

var normalHeight:uint = Stage.height
StageL.onResize = function() {
cover_mc._y = Stage.height/2;
cover_mc._x = Stage.width/2;
bgpic_mc._height = Stage.height;
bgpic_mc._xScale = Stage.height/normalheigth;
};

Joshua_abdon_sly
%Europe/Berlin %681 %2008, 17:22
Maar hier ben ik terug met een vraag, maar nu iets verder gaand in flash...

Ik zou dus hetzelfde willen, maar met een externe afbeelding:p

Nu lukt me dat niet met dezelfde aanpassingen...

this.createEmptyMovieClip("bgleft_mc", this.getNextHighestDepth());
var my_mcl:MovieClipLoader = new MovieClipLoader();
var mclListener:Object = new Object();
mclListener.onLoadComplete = function(target_mc:MovieClip, status:Number):Void {
trace("onLoadComplete: " + target_mc);
bgleft_mc._height = Stage.height;
bgleft_mc._xscale = bgpic_mc._yscale;
};

my_mcl.addListener(mclListener);
my_mcl.loadClip("bgLEFT.jpg", bgleft_mc);


grtz

Sushi
%Europe/Berlin %363 %2008, 09:43
Doet hij het helemaal niet of schaalt hij gwn niet mee?

simmz
%Europe/Berlin %411 %2008, 10:52
ff dan een doorvraagje...

hoe doe ik dit dan;

klik (http://www.prada.com)

De achtergrond is altijd gevuld en wordt niet vervormd...

Dat altijd gevuld lukt me wel maar hoe krijg ik hem zo dat hij niet vervormd?

dis is de code die ik gebruik:

achtergrond._width = Stage.width;
achtergrond._height = Stage.height;

var stageL:Object = new Object();
stageL.onResize = function() {
achtergrond._width = Stage.width;
achtergrond._height = Stage.height;
};

Stage.addListener(stageL);

Thnx!

Jan
%Europe/Berlin %418 %2008, 11:02
Vervang onLoadComplete door onLoadInit.
http://www.flashfocus.nl/forum/showpost.php?p=334635&postcount=6

Groeten,
http://users.telenet.be/jansurf/cwo.png Jan

simmz
%Europe/Berlin %476 %2008, 12:26
check!

ik maak ff een nieuwe.

sorry!

8D

Joshua_abdon_sly
%Europe/Berlin %578 %2008, 14:53
de foto wordt ingeladen over de volledige hoogte, maar de verhoudingen kloppen niet...

dus moet dit gedeelte aangepast worden:

bgleft_mc._xscale = bgpic_mc._yscale;


grtz
Josh

Joshua_abdon_sly
%Europe/Berlin %585 %2008, 15:03
De fout gevonden :p

bgpic_mc vervangen door bgleft_mc