ActionScript 3.0/Externe-Bestanden: verschil tussen versies

Uit Wikibooks
Verwijderde inhoud Toegevoegde inhoud
Klaasyk (overleg | bijdragen)
Code aangepast, tweede loader variabele bleek niet nodig te zijn.
Klaasyk (overleg | bijdragen)
Uitleg voor het werken met afbeeldingen toegevoegd.
Regel 15: Regel 15:
Neem dan de volgende code over:
Neem dan de volgende code over:
<source lang="actionscript3">
<source lang="actionscript3">
//Eerst de benodige pakketten importeren.
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.events.*;

//Hieronder maak je een variabele van de klasse URLRequest aan.
//Hieronder maak je een variabele van de klasse URLRequest aan.
var request:URLRequest = new URLRequest("greeter.txt");
var request:URLRequest = new URLRequest("greeter.txt");
Regel 48: Regel 53:
== Werken met afbeeldingen ==
== Werken met afbeeldingen ==
Natuurlijk kun je deze techniek ook voor afbeeldingen gebruiken.<br>
Natuurlijk kun je deze techniek ook voor afbeeldingen gebruiken.<br>
De mogelijke bestandindeling worden ondersteund:
* Jpeg (.jpg, .jpeg etc.)
* PNG (.png)
* GIF (.gif) Zowel een geanimeerde filmclip als een enkele afbeelding wordt ondersteund
<br>
<source lang="actionscript3">
import flash.display.DisplayObject();
//Maak eerst een object aan om het plaatje te tonen.
var myPicture:DisplayObject = new DisplayObject();

//Daarna doen we opnieuw een aanvraag naar het bestand.
//Bij voorkeur in dezelfde map als het .swf bestand, maar ook een webadres is mogelijk.
var request:URLRequest = new URLRequest("mijnAfbeelding.png");
</source>
Helaas kun je hier niet gebruikmaken van de klasse ''URLLoader'' omdat we de afbeelding ook gaan weergeven. Dit levert namelijk een foutmelding op bij het toevoegen aan de ''stage''.<br>
Gelukkig heeft actionscript hier een andere klasse voor: ''Loader''
<source lang="actionscript3">
//Importeer de onderstaande klassen.
import flash.display.Loader;
import flash.display.contentLoaderInfo;

//De ContentLoaderInfo klasse wordt gebruikt om te controleren wanneer het downloaden van de afbeelding voltooid is.
//Maak een nieuwe variabele aan voor de lader;
var myPictureLoader:Loader = new Loader();
//Laad de afbeelding met de load methode;
myPictureLoader.load(request);
//Voeg ook een eventlistener om te controleren wanner het downloaden voltooid is.
myPictureLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, toonafbeelding);

//Maak een functie aan om de afbeelding te tonen.
function toonafbeelding (e:Event){
//Voeg daarna de loader toe aan de stage, bij voorkeur onder de eerder aangemaakte container variabele.
myPicture.addChild(myPictureLoader);
//Dit zal de afbeelding naar de stage toe laden.
}



</source>


== Communiceren met een webserver ==
== Communiceren met een webserver ==

Versie van 7 okt 2011 10:29

ActionScript 3.0 Redelijk ontwikkeld. Revisiedatum: onbekend

  1. Inleiding Nog vrijwel niets. Revisiedatum: 19 januari 2011
  2. Basis Nog vrijwel niets. Revisiedatum: 19 januari 2011
  3. Variabelen Zeer goed ontwikkeld. Revisiedatum: 19 januari 2011
  4. Datatypes Zeer goed ontwikkeld. Revisiedatum: 19 januari 2011
  5. Functies Redelijk ontwikkeld. Revisiedatum: 19 januari 2011
  6. Aan de slag Goed ontwikkeld. Revisiedatum: 24 januari 2011
  7. Tutorial Redelijk ontwikkeld. Revisiedatum: 26 september 2011
  8. Instanties Nog vrijwel niets. Revisiedatum: 28 september 2011
  9. Statements-lussen In ontwikkeling. Revisiedatum: 25 januari 2011
  10. Operatoren Zeer goed ontwikkeld. Revisiedatum: 8 februari 2011
  11. Methoden Nog vrijwel niets. Revisiedatum: 24 januari 2011
  12. Klassen Nog vrijwel niets. Revisiedatum: 19 januari 2011
  13. Externe bestanden Redelijk ontwikkeld. Revisiedatum: 24 oktober 2011

Het kan in sommige gevallen handig zijn om met externe bestanden te werken in plaats van alles in het .fla of .swf bestand bij te voegen.
De voordelen hiervan zijn:

  • Je .sfw bestand wordt kleiner en is dus sneller te downloaden.
  • Je hebt soms niet alle afbeeldingen of andere media nodig die worden bijgevoegd in het .swf bestand.
  • Je kunt communiceren met serverscripts en zo ook met databases.


Je hebt hier alleen de klassen URLLoader en URLRequest voor nodig.

Een aanvraag doen naar een bestand

Maak een simpel tekstbestand (.txt) aan met de volgende tekst:

msg=Hello World!

En noem het bestand greeter.txt
Maak vervolgens een nieuw flashbestand aan (.fla) en selecteer bij het eerste frame actions(handelingen).
Neem dan de volgende code over:

//Eerst de benodige pakketten importeren.
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.events.*;

//Hieronder maak je een variabele van de klasse URLRequest aan.
var request:URLRequest = new URLRequest("greeter.txt");
//Hierin is greeter.txt de URL naar het bestand.
//Dit mag dus ook een webadres zijn
//LET OP! neem dan wel het hele adres over! (incl. http://)

//Daarna heb je variabele nodig om het bestand te laden.
var loader:URLLoader = new URLLoader();

//Vervolgens laad je het bestand met .load(URLRequest):
loader.load(request);


Nu heb je het bestand aangeroepen, maar voor het verwerken van de opgeroepen informatie heb je een EventListener nodig.

//Voeg een Eventlistener toe aan de Loader variabele
loader.addEventListener(event.COMPLETE, CompleteHandler);

function CompleteHandler(event:Event):void
{
 //Maak een nieuwe variabele aan om de gegevens te verwerken.
 var received = event.target.data;
 trace(received);
//Output: msg=Hello World!
}


De gegevens komen terug in de klasse String .


Werken met afbeeldingen

Natuurlijk kun je deze techniek ook voor afbeeldingen gebruiken.
De mogelijke bestandindeling worden ondersteund:

  • Jpeg (.jpg, .jpeg etc.)
  • PNG (.png)
  • GIF (.gif) Zowel een geanimeerde filmclip als een enkele afbeelding wordt ondersteund


import flash.display.DisplayObject();
//Maak eerst een object aan om het plaatje te tonen.
var myPicture:DisplayObject = new DisplayObject();

//Daarna doen we opnieuw een aanvraag naar het bestand.
//Bij voorkeur in dezelfde map als het .swf bestand, maar ook een webadres is mogelijk.
var request:URLRequest = new URLRequest("mijnAfbeelding.png");

Helaas kun je hier niet gebruikmaken van de klasse URLLoader omdat we de afbeelding ook gaan weergeven. Dit levert namelijk een foutmelding op bij het toevoegen aan de stage.
Gelukkig heeft actionscript hier een andere klasse voor: Loader

//Importeer de onderstaande klassen.
import flash.display.Loader;
import flash.display.contentLoaderInfo;

//De ContentLoaderInfo klasse wordt gebruikt om te controleren wanneer het downloaden van de afbeelding voltooid is.
//Maak een nieuwe variabele aan voor de lader;
var myPictureLoader:Loader = new Loader();
//Laad de afbeelding met de load methode;
myPictureLoader.load(request);
//Voeg ook een eventlistener om te controleren wanner het downloaden voltooid is.
myPictureLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, toonafbeelding);

//Maak een functie aan om de afbeelding te tonen.
function toonafbeelding (e:Event){
//Voeg daarna de loader toe aan de stage, bij voorkeur onder de eerder aangemaakte container variabele.
myPicture.addChild(myPictureLoader);
//Dit zal de afbeelding naar de stage toe laden.
}

Communiceren met een webserver

In sommige gevallen is het handig om cantact te leggen met een server en zelfs daaraan gekoppelde databases.

Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.