Winter 01 | Flash(back)

duplicateMovieClip


Je ziet drie opties: target, newName en Depth.
De target is de movieclip die je wil dupliceren. Wanneer je een duplicaat hebt gemaakt moet deze een nieuwe naam toegewezen krijgen, er mag immers geen dubbele instancename bestaan. De depht is omdat de movieclips worden bijgemaakt in dezelfde laag. Flash creert zelf binnen die laag nieuwe lagen, dit heet de depth. Er mag nooit meer dan een movieclip op een bepaalde depth bestaan. Wanneer je er toch meer aanmaakt, zal flash de oude movieclip vervangen met de nieuwe.

Wanneer je deze drie opties goed invult zie je het volgende:

On (release){
         duplicateMovieClip("instancename", "nieuwenaam", 10);
}
Dit is echter nog niet voldoende. Daarna moet je nog iets wijzigen aan de properties van de nieuwe movieclip. Deze krijgt namelijk automatisch alle eigenschappen van zijn voorganger mee. Dit betekend dat je de nieuwe niet kan zien, want die ligt exact bovenop de oude. Verstandig is om dan ook de _x waarde een beetje te wijzigen.
On (release){
    duplicateMovieClip("instancename", "nieuwenaam", 10);
    nieuwenaam._x = 30
}  


createEmptyMovieClip

Hier worden twee filmpjes gebruikt en het ene filmpje wordt in het andere filmpje ingeladen. Het ene filmpje heet hoofdmovie en de andere laadmovie. zo weet je over welk filmpje ik praat. De hoofdmovie krijgt b.v. een button en de laadmovie een foto of een animatie.

De button in de hoofdmovie heeft het volgende script:

on (release) {
   createEmptyMovieClip("movie01", 1);
   loadMovie("laadmovie.swf", movie01);
   _root.movie01._x = 200;
}             

Create emptymovieclip. doet wat de naam al zegt. Het maak een lege movieclip aan waar het ingeladen filmpje ingeladen kan worden. Hier mee geef je het filmpje meteen een naam. Movie01. Dit is handig want dan kan je altijd het filmpje weer aanspreken. Het is nu een gewoon onderdeel geworden van de hoofdmovie.

De functie loadMovie(); laadt het filmpje in de hoofdmovie en zegt meteen dat het fimpje in de nieuwe movieclip moet worden geladen. Daarna kan je movieclip dus gewoon aanspreken. Door bijvoorbeeld de x positie van het filmpje te veranderen.

attachMovie

Behalve dat je een movieclip kan duplicaten, kan je ook via actionscript een movieclip uit de library halen en deze koppelen aan een movieclip. Hierdoor kan je je filmpjes heel erg dynamisch maken. als je maar genoeg gereedschap in je library hebt kan je een programma onder invloed van de gebruiker laten onstaan, of onder invloed van je content. Een voorbeeld is een menuutje, afhankelijk van de content kan het altijd groter worden, onder in vloed van de gebruiker kan je het er totaal anders laten uitzien. Doordat je het scriptje gewoon andere onderdelen uit de library laat halen. attach kan je ook gebruiken in plaats van duplicate.

Bewaar je duplicate filmpje onder de naam attach dan gaan we deze aanpassen. Het grootste verschil is dat het object dat je wil attachen, je eerst in de library moet opzoeken en de properties moet aanpassen.
Dus open de properties, via rechtermuisknop, klik op advanced en vink dan export voor actionscript aan. Zorg dat je het een goede naam geeft en onthoudt deze.
Open nu het scriptje onder de button: en vervang het duplicate scriptje voor:

on (release) {
   thing.attachMovie( "circle", "circle1", 2 ); 
}

Eventueel als er tijd is:
Buttons aansturen vanuit de tijdlijn!

btn_name.onRelease = function(){
   // en hier komt dan je scriptje 
} 
   

Array

// simpele array
mijnLijstje = Array("een", "twee", "drie");
trace(mijnLijstje);
//array met variablen
var een = "oranje";
var twee = "groen";
var drie = "paars";
mijnLijstje = Array(een, twee, drie);
trace(mijnLijstje);
// array met array's
een = Array("een", "twee", "drie");
twee = Array("oranje", "groen", "paars");
drie = Array("huis", "boom", "beest");
mijnLijstje = Array(een, twee, drie);
trace(mijnLijstje);
//waarde van een array opvragen
test = een[0]; 
test = mijnLijstje[0][2]; 

toelichting
De eerste waarde in een Array is altijd nul. Dus begin altijd met nul te tellen. Wanneer je de nul tussen de vierkante haken veranderd in een 1 of een 2, geeft flash de tweede of derde waarde uit het rijtje weer. Op die manier kan je altijd de gewenste waarde weer oproepen. Als er sprake is van een Array in een Array, dan vraag je tussen de eerste vierkante haken de array op, en met de tweede vierkante haken de (1e, 2e of 3e) waarde in die array;


Auteur: Barend Hendriks
Seizoen: winter
Lesnummer: 01
Datum: 16-10-2005
Type les: MME