Helderheid is een attribuut van visuele waarneming waarin een bron schijnt te stralen of licht reflecteert.
In deze zelfstudie leren we hoe we de helderheid van een weergaveobject kunnen aanpassen met ActionScript 3.
Laten we eens kijken naar het eindresultaat waar we naartoe zullen werken:
Met behulp van de klasse ColorTransform en een component Slider verhogen of verlagen we de helderheid van een DisplayObject.
Open Flash en maak een nieuw Flash-bestand (ActionScript 3).
Stel de stage-afmeting in op 500x350 px en stel de framesnelheid in op 24 fps.
Elk DisplayObject kan met deze klasse worden gebruikt; voor dit voorbeeld heb ik een afbeelding van Flickr gekozen:
Plaats je afbeelding in het midden van het werkgebied, converteer het naar MovieClip en geef het een instantienaam van beeld.
We maken een paneel met een schuifregelaarcomponent en een dynamisch tekstveld als interactieve objecten.
Selecteer het Primitive Tool Rectangle (R) en teken een rechthoek van 250x70px, stel de hoekradius in op 7 en wijzig de alpha in 60.
Converteer het naar MovieClip en voeg het volgende filter toe:
Het paneel zou er als volgt uit moeten zien:
Dubbelklik op de MovieClip om de bewerkingsmodus te openen en een dynamisch tekstveld te maken; stel de instantienaam in bValue (voor "helderheidswaarde") en centreren. Geef het een eerste invoer van 0. U kunt ook een titel aan het paneel toevoegen en enkele pictogrammen als richtlijn.
Open het paneel Componenten (Cmd / Ctrl + F7) en sleep een component Slider naar het paneel Helderheid; centreer het en noem het schuif.
Met de schuifcomponent geselecteerd, druk je op Shift + F7 om het paneel Component Inspector te openen en de opties te bewerken zoals in de afbeelding:
Maak een nieuw ActionScript-document en sla het op als Main.as.
We gaan een documentklasse gebruiken voor dit project. Als u niet zeker weet hoe u een documentklasse moet gebruiken, leest u deze korte introductie.
pakket
Met het sleutelwoord van het pakket kunt u uw code indelen in groepen die kunnen worden geïmporteerd door andere scripts, het wordt aanbevolen om ze een naam te geven die begint met een kleine letter en intercaps te gebruiken voor volgende woorden, bijvoorbeeld: mijn lessen.
Als u uw bestanden niet in een pakket wilt groeperen of als u slechts één klasse hebt, kunt u deze rechtstreeks uit uw bronmap gebruiken.
Er zijn een paar lessen nodig om dit te laten werken. Raadpleeg de Flash Help (F1) voor een meer gedetailleerde beschrijving van elke klas..
import flash.display.Sprite; import fl.events.SliderEvent; import flash.geom.ColorTransform;
De strekt keyword definieert een klasse die een subklasse van een andere klasse is. De subklasse erft alle methoden, eigenschappen en functies, op die manier kunnen we ze in onze klasse gebruiken.
public class Main breidt uit
In dit voorbeeld is slechts één variabele nodig: een instantie van ColorTransform. Dit wordt gebruikt om de RGB-waarden van het doelweergaveobject te wijzigen.
var colorTransform: ColorTransform = new ColorTransform ();
Deze functie wordt uitgevoerd wanneer de klasse is geladen.
Een SliderEvent-luisteraar wordt toegevoegd aan de schuifregelaarcomponent om een functie uit te voeren wanneer de gebruiker de waarde van de schuifregelaar verandert.
public function Main (): void panel.slider.addEventListener (SliderEvent.CHANGE, updateBrightness);
Deze functie wordt uitgevoerd wanneer de schuifregelaarwaarde verandert. Dit is het gedeelte ColorTransform. De rode, groene en blauwe offsets van de kleurtransformatiematrix worden zo ingesteld dat ze overeenkomen met de waarde van de schuifregelaar.
persoonlijke functie update. Helderheid (e: SliderEvent): void / * Stel de RGB-verschuivingen in op de schuifregelaarwaarde * / colorTransform.redOffset = e.value; colorTransform.greenOffset = e.value; colorTransform.blueOffset = e.value;
Wil je weten wat we hier doen? Bekijk dit artikel over kleurtransformaties.
Deze regel past de wijzigingen in de afbeelding op het werkvlak toe.
image.transform.colorTransform = colorTransform;
De tekst in het helderheidspaneel is ook bijgewerkt.
panel.bValue.text = e.value;
Ga terug naar het FLA-bestand en stel in het Properties-paneel het Class-veld in Hoofd om het te koppelen aan de documentklasse.
Nu kunt u eenvoudig een manier implementeren om de helderheid van een afbeelding of ander weergaveobject aan te passen met behulp van ActionScript 3.
Bedankt voor het lezen!