De term windpark verwijst naar een groep windturbines op één locatie die wordt gebruikt voor de productie van elektriciteit. Vergeleken met de milieueffecten van traditionele energiebronnen zijn die van windenergie relatief gering. Windenergie verbruikt geen brandstof en stoot geen luchtvervuiling uit, in tegenstelling tot fossiele energiebronnen.
In deze zelfstudie leert u hoe u een virtueel windpark kunt maken met behulp van ActionScript 3.0.
Deze post is onderdeel van Blog Action Day 2009, een wereldwijd initiatief gestart door Envato-oprichters Collis en Cyan Ta'eed, nu in handen van Change.org. Blog Actiedag bestaat om verander de conversatie op het internet voor een dag door duizenden bloggers te verenigen rond één belangrijk probleem - dit jaar Climate Change. Het is nog niet te laat om je blog te registreren en deel te nemen.
We pakken de geretourneerde waarde van de eigenschap activityLevel van de klasse Microphone en geven deze vervolgens door aan de eigenschap rotation van een eerder gemaakte Turbine MovieClip.
Dit zal ertoe leiden dat onze windturbines draaien ten opzichte van de geluidsniveaus die door de microfoon worden opgepikt. Gebruikers kunnen letterlijk op hun schermen blazen en kijken naar de turbines die draaien!
Open Flash en maak een nieuw Flash-bestand (ActionScript 3).
Stel de stage in op 600x300 en de framesnelheid op 24 fps.
We zullen een eenvoudige vectorillustratie maken om ons windpark te bevatten.
Selecteer het gereedschap Rechthoek (R) en maak een blauw lineair verloop (# 81CCFE, # D0EAFB) rechthoek van de grootte van het werkgebied.
Gebruik het gereedschap Gradiënttransformatie (F) om het verloop te roteren, zodat uw achtergrond er als volgt uitziet:
Dit zal onze hemel zijn.
Laten we nu wat gras toevoegen waarop we onze windturbines kunnen plaatsen.
Selecteer opnieuw het gereedschap Rechthoek en maak een rechthoekige rechthoek met een lengte van 600x30 px groen (# 9AB937, # AFC232, # 9AB937) en lijn deze uit op de bodem van het werkgebied.
Gebruik het selectiegereedschap (V) om de bovenste rand van de rechthoek te pakken (u zult zien dat de cursor verandert in een pijl met een kleine curve onderaan) en deze naar links buigen om een lichte bocht te maken; kijk naar de volgende afbeelding voor referentie.
Gebruik het gereedschap Rechthoek om een # F7F7F7, 10x153 px-rechthoek te tekenen en gebruik het gereedschap Selecteren om de bovenranden te slepen, waardoor het dunner wordt. Dit zal de basis van de turbine zijn.
Om de bladen te maken, tekent u een rechthoek van 1x90 px en gebruikt u vervolgens het gereedschap Selecteren om de zijden te slepen en een semi-ovaal te maken. Je kunt dit beter zien in de volgende afbeelding.
Dupliceer het mes (Cmd + D) en gebruik het gereedschap Transformeren om het te roteren. Herhaal deze stap om een totaal van 3 bladen te maken.
Selecteer het ovalen gereedschap, maak een cirkel van 20x20 px en plaats deze in het midden van de turbines.
Voeg wat schaduw toe door de windturbine te dupliceren en de kleur ervan te wijzigen in # D0D0D0. Ga vervolgens naar Modify> Arrange> Send backward en verplaats de selectie 1px naar rechts.
Converteer de bladen naar een MovieClip en stel de instantienaam in als "turbine". Gebruik opnieuw het menu Rangschikken om de middelste cirkel naar voren te brengen.
Dupliceer de windturbine zo vaak als je wilt, vergeet niet de instantienaam aan te passen aan het aantal turbines.
We gaan wat informatie toevoegen over de windturbines en de Blog Action Day-titel.
Selecteer het tekstgereedschap (T) en maak een nieuw statisch tekstveld. Voeg de titel en de informatie toe en gebruik de volgende filter.
OK, dat is het grafische gedeelte afgelopen. Het zou er zo uit moeten zien:
Maak een nieuw ActionScript-bestand (Cmd + N) en sla dit op als "Main.as".
Dit is de klasse die de applicatie zal afhandelen.
Dit zijn de lessen die we nodig hebben. Raadpleeg de Flash-hulp (F1) voor een gedetailleerde beschrijving van elke klas..
pakket import flash.display.Sprite; import flash.media.Microphone; import fl.transitions.Tween; import fl.transitions.easing.Strong; import fl.transitions.TweenEvent; import flash.events.Event; import flash.events.ActivityEvent; import flash.system.Security;
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 WindFarm breidt Sprite uit
We gebruiken slechts drie variabelen in deze klasse, twee gedeclareerd in het volgende blok code en een andere voor de Tween gedeclareerd in de rotatiefunctie.
private var started: Boolean; // Dit klopt als de turbines een eigen vario draaien: Microphone = Microphone.getMicrophone (); // Een exemplaar van de microfoonklasse
De constructor is een functie die wordt uitgevoerd wanneer een object wordt gemaakt op basis van een klasse. Deze code is de eerste die wordt uitgevoerd wanneer u een exemplaar van een object maakt of uitvoert met behulp van de documentklasse.
openbare functie WindFarm (): void Security.showSettings ("2"); // Toont een Beveiligingsdialoog waarin de gebruiker wordt gevraagd de Microfoon mic.setLoopBack (true) in te schakelen; // Retourneert het ingangsgeluid naar de luidsprekers als (mic! = Null) // Als de microfoon is ingeschakeld ... mic.setUseEchoSuppression (true); // Reduceert echo mic.addEventListener (ActivityEvent.ACTIVITY, activityHandler); // Roept de ActivityHandler-functie op telkens wanneer de microfoon geluid detecteert
Deze code voegt een toehoorder toe om de rotatiefunctie uit te voeren die de beweging van de turbines zal afhandelen.
private function activityHandler (event: ActivityEvent): void stage.addEventListener (Event.ENTER_FRAME, rotateTurbines);
Deze functie zorgt voor de rotatie van de turbines.
privéfunctie rotateTurbines (e: Event): void / * Als het activiteitsniveau dat de microfoon ontvangt tussen 11 en 19 ligt en de turbines al draaien, wordt een "vertragende" tween uitgevoerd * / if (mic.activityLevel < 20 && mic.activityLevel > 10 && start) var tween; tween = nieuwe Tween (turbine, "rotatie", Strong.easeOut, turbine.rotation, turbine.rotation + 720,3, true); tween = nieuwe Tween (turbine2, "rotatie", Strong.easeOut, turbine.rotation, turbine.rotation + 720,3, true); tween = nieuwe Tween (turbine3, "rotatie", Strong.easeOut, turbine.rotation, turbine.rotation + 720,3, true); tween = nieuwe Tween (turbine4, "rotatie", Strong.easeOut, turbine.rotation, turbine.rotation + 720,3, true); tween.addEventListener (TweenEvent.MOTION_FINISH, onMotionFinish); // Roept een functie op wanneer de turbines stoppen else if (mic.activityLevel> 20) // Als het activiteitenniveau hoger is dan 20, is het geluid voldoende om de turbines te verplaatsen started = true; // Turbines zijn bewegende turbine.rotation + = mic.activityLevel; turbine2.rotation + = mic.activityLevel; turbine3.rotation + = mic.activityLevel; turbine4.rotation + = mic.activityLevel;
Deze code wordt uitgevoerd wanneer de vertraagde tween is voltooid.
private function onMotionFinish (e: TweenEvent): void started = false; // Turbines zijn niet in beweging
Ga terug naar het .Fla-bestand en voeg in het eigenschappenvenster "Hoofd" toe aan het veld Klasse om dit de documentklasse te maken.
Nu weet je hoe je de Microphone-activiteit kunt krijgen, meten en implementeren, plus je hebt een beetje geleerd over windparken en hoe ze helpen de planeet te behouden.
Wees groen en bedankt voor het lezen!