Scripting Maskers in Flash
Gebruik de Drawing API een vorm te maken en gebruik vervolgens MovicClip.setMask () toe te passen het masker. Maskers kunnen worden gebruikt om unieke vormen of visuele effecten. Zo kunt u maskers gebruiken voor het maken doekjes en overgangen of interessante animaties waarin alleen de gemaskerde gedeelte van het kunstwerk is zichtbaar op een bepaald moment. U kunt zelfs maskers maken die van vorm veranderen in de tijd, en gebruik ze te maskeren bitmap-afbeeldingen (in de film clips). U kunt elk filmclip als een masker van een ander filmclip met behulp van de setMask () methode. De setMask () methode wordt aangeroepen van de filmclip worden gemaskeerd, en je moet doorgeven een verwijzing naar de filmclip die fungeert als het masker: maskedMovieClip.setMask (maskMovieClip); In de meeste gevallen, maskers zijn eenvoudige vormen, zoals rechthoeken en cirkels. U hoeft geen gebruik te maken van de Drawing API te stellen het masker filmclip, maar het is aanbevolen dat u dit doet, tenzij het masker is van een ongewone vorm. Ten eerste, hier is een voorbeeld waarin een masker volgt de muis. Het masker wordt toegewezen aan een filmclip met een geladen beeld, dus het effect is dat de gebruiker alleen het gedeelte van het beeld waarop hij gepositioneerd met de muis kunt zien. / / Neem de tekening methoden, die nodig zijn voor de drawCircle () methode. # Include "DrawingMethods.as" / / Maak een movie clip en een geneste filmclips voor het laden van een afbeelding. / / Voor meer informatie over de noodzaak voor het creëren van geneste filmclips bij het laden / / externe JPEG is. _root.createEmptyMovieClip ( "Image_mc", 1); _root.image_mc . createEmptyMovieClip ( "imageHolder_mc", 1); / / Laad de afbeelding in de filmclip. U kunt deze URL als u wilt, maar het zal / / alleen werken terwijl u met behulp van de test of standalone spelers. / / Image_mc.imageHolder_mc.loadMovie ( "http://www.person13.com/ascb/images/image1 . jpg "); / / Teken de maskerende filmclip. _root.createEmptyMovieClip ( "Mask_mc", 2); mask_mc.lineStyle (3, 0x000000, 0); mask_mc.beginFill (0, 100); mask_mc.drawCircle (60); mask_mc.endFill ( ) / / Roep de setMask () methode op de gemaskerde movie clip en geef het de maskerende film / / clip als een parameter. Image_mc.setMask (mask_mc); / / De startDrag Call () methode van het maskerende filmclip, zodat het masker / kan / verplaatst met de cursor. Mask_mc.startDrag (true); Vervolgens is hier een voorbeeld waarin een masker wordt gebruikt om een overgang veeg tussen twee geladen beelden. # include "DrawingMethods.as" / / Maak een movie clip en een geneste filmclips en laadt de eerste afbeelding in. _root.createEmptyMovieClip ( "Image0_mc", 1); _root.image0_mc.createEmptyMovieClip ( "imageHolder_mc", 1); image0_mc.imageHolder_mc.loadMovie ( " http://www.person13.com/ascb/images/image1.jpg "); / / Maak een movie clip en geneste movie clip en laden het tweede beeld in. / / Beide image0_mc en image1_mc zijn gemaakt op (0,0). Dit betekent dat zij zal / / overlappen. Dit is wat we willen. _root.createEmptyMovieClip ( "Image1_mc", 2); _root.image1_mc.createEmptyMovieClip ( "imageHolder_mc", 1); image1_mc.imageHolder_mc.loadMovie ( "http://www.person13.com/ascb/images / image2.jpg "); / / Teken de maskerende filmclip. De afmetingen van de beelden zijn 640 x 480 (als u / / laden van de beelden met de meegeleverde URL's) en zo het masker moet een rechthoek / / met dezelfde afmetingen. _root.createEmptyMovieClip ( "Mask_mc", 3); mask_mc. LineStyle (3, 0x000000, 0); mask_mc.beginFill (0, 100); mask_mc.drawRectangle (640, 480); mask_mc.endFill (); / / Plaats het masker, zodat het uit de linkerkant van de stage. Mask_mc._x = -320; mask_mc._y = 240; / / Roep de setMask () methode in te stellen mask_mc als het masker voor image1_mc. Dit veroorzaakt / / image0_mc aanvankelijk weer te geven, hoewel het onder image1_mc is. Image1_mc.setMask (mask_mc); / / Definieer een event handler methode voor image0_mc zodat het masker filmclip beweegt / / als de gebruiker klikt op image0_mc. Image0_mc.onRelease = function () ( / / Gebruik een onEnterFrame () event handler methode te bewegen het masker. Dit veronderstelt u / / hebben de standaard frames per seconde instellen van 12. _root.mask_mc.onEnterFrame = Function () ( / / Verplaats het masker naar rechts met 12 pixels. This._x + = 12; / / Als het masker volledig is maskeren van de afbeelding, dan verwijdert u de onEnterFrame () methode. If (> = 320) (this._x this._x = 320; delete this.onEnterFrame;))) Als u de URL's die in dit voorbeeld gebruiken, dan de beelden die worden geladen hebben afmetingen van 640 x 480. Daarom is het misschien nodig om de afmetingen van uw film om de volledige beelden. Als u uw eigen afbeeldingen te gebruiken, moeten deze van dezelfde resolutie voor het effect te werken zoals beschreven. een artikel afkomstig van Elis Frugalo
|
|||
|