MovieClipLoader Class en het laden van de fotos

Mooi we hebben nu alles in arrays. Nu word het tijd om de plaatjes te gaan inladen. Dit gaan we doen met de MovieClipLoader Class. Als je AS een beetje door begint te krijgen is dit vrij makkelijk en ik vind het een hele leuke class.
Of nou ja de class zelf is niks aan, maar de listeners of events zijn leuk, vind ik zelf... :)
Ok hier komt de code weer!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
// Eerst gaan we twee objecten aanmaken de MovieClipLoader class
// en een leeg Object, hier komen straks de leuke functies voor de MovieClipLoader Class in.
var mcloader:MovieClipLoader = new MovieClipLoader();
var eventobject:Object = new Object();

// ook maken we alvast een Number aan, deze gaan we straks gebruiken bij de functie setInterval
var intervalid:Number;

// We laten de MCL Class even links liggen en we beginnen met het lege object
// Als je nu op F1 drukt krijg je de Flash help, als je daar intype MovieClipLoader Class
// krijg je uitleg over de Class, daar kijken we ook even niet naar, maar er staat een tabel in
// met alle events die deze class ondersteunt, namelijk:
/*
onLoadComplete = function([target_mc:MovieClip], [httpStatus:Number]) {}
 Deze functie/event wordt uitgevoerd als de gehele clip (in ons geval een plaatje van jpg formaat).
 Let op:
 De clip is geladen, maar nog niet uitgevoerd. (Er word dus nog niks getoont);
 
onLoadError = function(target_mc:MovieClip, errorCode:String, [httpStatus:Number]) {}
 Als er een probleem is met laden begint deze functie met ratelen
 
onLoadInit = function([target_mc:MovieClip]) {}
 Deze functie/event wordt uitgevoerd waarneer de clip is geladen en in het eerste frame van zichzelf staat.
 Hier laten we pas het plaatje zien
 
onLoadProgress = function([target_mc:MovieClip], loadedBytes:Number, totalBytes:Number) {}
 Deze wordt uitgevoerd tussen onLoadStart en onLoadComplete, tijdens het laden zelf dus.
 Een mooie plek om een preloader neer te gooien
 
onLoadStart = function([target_mc:MovieClip]) {}
 Zodra de aanroep mcloader.loadClip(variabel) is geschiedt.
*/
// We gaan beginnen met de belangrijkste onLoadInit
// om hem mooi in te laden laten we hem infaden. Hierover later meer
eventobject.onLoadInit = function() {
    // We zijn nu op het punt van uitvoeren.
    // eerst gaan we de titel en beschrijving neerzetten
    titel_txt.text = titels[welkeisnu];
    // herriner je de variabel welke is nu nog? Deze zorgt ervoor dat er 'dynamisch'
    // nieuwe plaatjes worden aangeroepen. Zo hebben we de juiste titel en beschrijving
    // bij het juiste plaatje.
    beschrijving_txt.text = beschrijvingen[welkeisnu];
    
    // setInterval(functionname, interval, parameters).
    // Dit is een loop, eentje die door blijft gaan totdat je clearInterval(intervalid) aanroept.
    intervalid = setInterval(fadein, 120, "imgholder_mc");
    
    // zodra er een nieuwe file is ingeladen zijn alle eigenschappen van een MC weg. Die moeten we dus
    // opnieuw instellen. (Alleen de width en height voor nu).
    imgholder_mc._width = 450;
    imgholder_mc._height = 450;
}
 
// we gaan hier de functie definieren voor de setInterval;
function fadein(target_mc) {
    // de functie eval maakt van een string een object
    target_mc = eval(target_mc);
    // we gaan de Alpha (doorzichtigheid) naar honderd procent brengen.
    // in stappen van 5
    target_mc._alpha += 5;
    if(target_mc._alpha > 95) {
        // de alpha is nu groter dan 95, ga nooit op exacte waarde zitten, dit kan verkeerd uitpakken!
        // maar we setten wel de alpha wel naar naar 100%!
        target_mc._alpha = 100;
        // Nu hoeven de interval niet meer uit te voeren dus roepen we clearInterval aan!
        clearInterval(intervalid);
    }
}

// we gaan ook maar gelijk de functie om uit te faden maken.
function fadeuit(target_mc) {
    // de functie eval maakt van een string een object
    target_mc = eval(target_mc);
    // we gaan de Alpha (doorzichtigheid) naar 0 procent brengen.
    // in stappen van 5
    target_mc._alpha -= 5;
    if(target_mc._alpha < 5) {
        // de alpha is nu kleiner dan 5, ga nooit op exacte waarde zitten, dit kan verkeerd uitpakken!
        // maar we setten wel de alpha wel naar naar 0%!
        target_mc._alpha = 0;
        // Nu hoeven de interval niet meer uit te voeren dus roepen we clearInterval aan!
        clearInterval(intervalid);
    }
}

// wanneer moeten we de fadeout aan roepen?
// precies! bij onLoadStart
eventobject.onLoadStart = function() {
    // eerst halen we de titel en beschrijving weg
    titel_txt.text = '';
    beschrijving_txt.text = '';
    // nu setten we de interval
    setInterval(fadeuit, 120, "imgholder_mc");
}

// we maken ook een kleine preloader:
eventobject.onLoadProgress = function() {
    titel_txt.text = 'De nieuwe foto word ingeladen...';
    // dit is nu wel ff genoeg voor nu.
}

// nu gaan we ook de buttons meelaten doen, dit zijn de buttons die we eerder hebben gedefinieerd.
next_btn.onRelease = function() {
    // dit is next, dus volgende. Dat betekent dat welkeisnu verhoogt moet worden met 1
    welkeisnu++;
    // om een loop te maken gaan we even kijken of welkeisnu niet groter is dan fotos.length-1
    if(welkeisnu > fotos.length-1) {
        welkeisnu = 0;
    }
    // nu gaan we de nieuwe foto inladen
    // loadClip(url, target);
    mcloader.loadClip('images/' + fotos[welkeisnu], 'imgholder_mc');
}
prev_btn.onRelease = function() {
    // dit is prev, dus vorige. Dat betekent dat welkeisnu verlaagd moet worden met 1
    welkeisnu--;
    // om een loop te maken gaan we even kijken of welkeisnu niet kleiner is dan 0
    if(welkeisnu < 0) {
        welkeisnu = fotos.length-1;
    }
    // nu gaan we de nieuwe foto inladen
    // loadClip(url, target);
    mcloader.loadClip('images/' + fotos[welkeisnu], 'imgholder_mc');
}


Als het goed is moet nu alles werken.
Zorg dat er wat foto's staan in de image map en een link in de database.
We hebben verder niet iets ingevoegd of de functies aangeroepen in PHP, ik ga ervan uit dat je dat al kan.

Dit was mijn tutorial, ik hoop dat jullie er wat aangehad hebben!

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Inleiding
  2. Voorbereiding
  3. De PHP
  4. XML ontleden in AS
  5. MovieClipLoader Class en het laden van de fotos

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.