PDA

Volledige versie bekijken : Resize van swf blokkeren


PageMaker
%Europe/Berlin %586 %2010, 14:05
Het venster van een swf maakt net als elk ander venster in de rechterbovenhoek drie knopjes: een streepje om het venster te verkleinen, een vierkantje om te resizen en een kruisje om af te sluiten.

Kunnen we nu binnen Flash (as3) de actie van dat vierkantje uitschakelen zodat de bezoeker niet kan resizen; ook niet door te trekken of te duwen aan de kanten van die swf?

We kunnen natuurlijk de resize event afvangen, maar dan??

Dauntless
%Europe/Berlin %439 %2010, 10:33
Je kan de scaleMode op StageScaleMode.NO_SCALE zetten en dan centreren. Op die manier kan je er voor zorgen dat je eigenlijke content altijd even groot blijft.

PageMaker
%Europe/Berlin %543 %2010, 13:02
Alleen:
stage.scaleMode = StageScaleMode.NO_SCALE;
is niet voldoende.
Bedoel je "centreren" met behulp van css?

Dauntless
%Europe/Berlin %552 %2010, 13:14
Nee, alles in een MovieClip zetten en die movieclip centreren adhv stageWidth en stageHeight.

PageMaker
%Europe/Berlin %663 %2010, 15:54
Tja, daar denk ik vrijwel nooit aan; "ons ben zunig" weet je.
Ik neem aan dat het ook een Sprite mag zijn, ik heb namelijk geen timeline nodig.
En dat "zunige" komt voort uit de gedachte om de swf zo klein mogelijk te houden; ik zal eens het verschil in grootte kijken met en zonder die extra Sprite.
Dank voor je reactie.

PageMaker
%Europe/Berlin %711 %2010, 17:04
Nou, dat verschil is maar 60 bytes.
Ik heb nu:
public function Main()
{
stage.scaleMode = StageScaleMode.NO_SCALE;
var mainSprite:Sprite = new Sprite();
addChild( mainSprite );
loadThumbSlider = new LoadThumbSlider( mainSprite, textBox );
mainSprite.addChild( loadThumbSlider );en in loadThumbSlider:
public function LoadThumbSlider( sRef:Sprite, txt:TextField )
{
....................
thumbSlider = new ThumbSlider( picCount, stageRef, textBox );
stageRef.addChild( thumbSlider );en in ThumbSlider:
public function ThumbSlider( picCount:uint, sRef:Sprite, txt:TextField )
{
textBox = txt;
stageRef = sRef;
var thumbKader:uint = Constanten.vars.THUMB_KADER;
var thumbMarge:uint = Constanten.vars.THUMB_MARGE;
sliderWide = picCount * ( thumbKader + thumbMarge ) * 2; // HIER!
graphics.clear();
graphics.beginFill( 0x00FF00, 0.8 );
graphics.drawRoundRect( 0, 0, sliderWide, sliderHoog, 10, 10 );
graphics.endFill();
x = Constanten.vars.SLIDER_RAND;
y = stageRef.height - ( Constanten.vars.SLIDER_RAND + sliderHoog );

maskWide = stageRef.width - Constanten.vars.SLIDER_RAND * 2;
slideMask = new Sprite();
slideMask.graphics.clear();
slideMask.graphics.beginFill( 0x000000, 1 );
slideMask.graphics.drawRoundRect( 0, 0, maskWide, sliderHoog, 15, 15 );
slideMask.graphics.endFill();
slideMask.x = Constanten.vars.SLIDER_RAND;
slideMask.y = stageRef.height - ( Constanten.vars.SLIDER_RAND + sliderHoog );
mask = slideMask;
halfSlide = int( sliderWide / 2 );
halfMask = int( maskWide / 2 );
} // constructor
Het vreemde is dat het masker wel aan de mainSprite lijkt "vastgeplakt" en dat de thumbSlider gewoon met de stage meebeweegt wanneer ik een resize uitvoer.

Wat zie ik over het hoofd?

PageMaker
%Europe/Berlin %746 %2010, 17:54
Nou dat was eenvoudig; achteraf natuurlijk!!
stageRef.addChild( slideMask );

Nu nog de resizeevent afvangen zodat de zaak niet kleiner kan worden dan de oorspronkelijke afmetingen.

nightyNight
%Europe/Berlin %651 %2010, 15:37
swffit voor gebruiken, zeer handige tool om de oorspronkelijke afmetingen te behouden ofwel scrollbar te gebruiken