Construiți un Flash Dynamic și o prezentare XML cu tranziții scrise

Actualizările de conținut în Flash pot fi dificile și consumatoare de timp din cauza numeroaselor etape implicate. Citirea pur și simplu a conținutului dintr-un fișier XML înseamnă că importarea de noi active și recompilarea SWF nu mai este necesară. Acest tutorial va acoperi încărcarea dinamică a imaginilor dintr-un fișier XML și tratarea neconcordanțelor în dimensiunile imaginilor utilizând biblioteca de animație GreenSock Tween Max.




Rezultatul final al rezultatelor

Să aruncăm o privire la o captură de ecran a prezentării finale pe care o vom strădui:

fundal

Imaginile și exemplele de interfață sunt furnizate utilizând Flash CS4 și Actionscript 2, dar alte versiuni ale Flash încă din versiunea 8 ar trebui să poată urma fără probleme. Acest tutorial presupune cel puțin o cunoaștere activă a Actionscript, deoarece nu voi explica fiecare linie, însă chiar dacă pur și simplu copiați și inserați, ar trebui să puteți reuși acest lucru.

Pasul 1 - Creați un dosar de proiect

Cu un proiect de acest tip, este important să păstrați totul organizat, astfel încât Flash să poată găsi lucrurile așa cum le are nevoie. Deci, creați un folder de proiect pe computerul dvs. unde puteți plasa TOATE fișierele legate de acest proiect.

Pasul 2 - Pregătirea activelor

Găsiți imagini pentru prezentarea dvs. Am folosit mai multe imagini de la http://www.sxc.hu (sxc_hu_410471_5588.jpg, sxc_hu_1151936_79441078.jpg, sxc_hu_1152040_85122875.jpg, sxc_hu_1154131_54136948.jpg).

Creați un dosar cu "active" în dosarul proiectului. Deschideți editorul de imagini preferat și redimensionați-vă fotografiile, astfel încât toate acestea să aibă o dimensiune similară. Am redimensionat imaginile, astfel încât cea mai lungă parte (înălțime sau lățime) este de 700px și permite software-ului de editare a imaginii să mențină proporția imaginii.

Deoarece activele externe nu beneficiază de un preloader Flash, acest lucru ar fi un moment excelent pentru optimizarea imaginilor pentru descărcări rapide. Flash poate încărca fișiere png, jpeg sau gif, astfel încât imaginile finale să fie într-unul din aceste formate și să le salveze în dosarul de materiale pe care tocmai l-ați creat.

Pasul 3 - Creați un nou fișier Flash ActionScript 2

Pasul 4 - Configurarea etapei

Redimensionați-vă scena pentru a fi puțin mai mare decât imaginile pe care le-ați creat în Pasul 2. Scopul este să vă asigurați că imaginile afișate vreodată nu sunt eliminate în prezentarea finală. Am folosit 800px x 800px pentru a da imaginilor de 700px 50px de spațiu pe toate laturile. Acum este, de asemenea, un moment bun pentru a schimba rata de cadre la 30fps pentru tranziții frumoase și alegeți o culoare de fundal la alegerea dvs..

Pasul 5 - Configurarea liniei de timp

Redenumiți "stratul 1" în "fundal". Creați un strat nou și numiți-l "conținut". Creați încă un strat și numiți-l "script" și este o idee bună să închideți acest strat. Orice plasați pe stratul de fundal se va afișa în spatele prezentării. Dacă vă uitați la exemplu, textul se află în acest strat.

Pasul 6 - Creați un Shell pentru imaginile încărcate

Utilizați obiectul desen pentru a crea un pătrat alb pe scenă. Selectați pătratul și convertiți-l la un simbol (F8). Asigurați-vă că punctul de înregistrare este în colțul din stânga sus și apelați clipul "shell". Dați clipului un nume de instanță a "shell_mc".

Pasul 7 - Adăugați fundalul fotografiei

În interiorul "shell_mc" selectați caseta albă și convertiți-l la un simbol (F8). Din nou, asigurați-vă că înregistrarea este în partea stângă sus și denumiți clipul "fundal". Dați noului filmClip un nume de instanță a "background_mc". În cele din urmă, denumiți stratul "fundal" și blocați-l.

Pasul 8 - Crearea textului de încărcare

În interiorul "shell_mc" creați un nou strat numit "text". Utilizați instrumentul de text pentru a crea textul static care spune "încărcarea imaginii". Mutați textul la x: 20 și y: 20 astfel încât să se termine sub imagine.

Pasul 9 - Adăugați un obiectiv de încărcare a imaginii

Creați un alt strat nou în interiorul "shell_mc" numit "imagini". Creați un film golClip numit "pics", apoi trageți-l din bibliotecă în stratul nou creat "imagini". Mutați clipul la x: 10 și y: 10 și dați-i un nume de instanță pentru "pics_mc".

Pasul 10 - Creați o formă pentru mascarea imaginii

În interiorul "shell_mc" creați un strat de mai sus "imagini și nume" mască ". Faceți un nou pătrat, convertiți-l într-un filmClip numit "mască" și dați-i un nume de instanță "mask_mc". Deplasați clipul la x: 10 și y: 10.

Pasul 11 ​​- Conversia formei la o mască

Faceți clic dreapta pe stratul "mască" și selectați Mască. Asigurați-vă că pictogramele stratului "mască" și "imagine" se modifică pentru a arăta ca exemplu.

Pasul 12 - Creați un cadru de imagine

În interiorul "shell_mc" creați un strat deasupra "mască" și denumiți-l "cadru". În paleta de unelte, selectați o culoare cursă și o altă culoare de umplere, apoi creați un pătrat pe stratul "cadru". Selectați zona de umplere și ștergeți-o, lăsând doar marginea. Faceți dublu clic pe margine pentru ao selecta și ao converti la un filmClip numit "frontieră". Dați filmulClip și numele instanței "border_mc" și plasați-l la x: 10 și y: 10.

Pasul 13 - Adăugați o Umbre de Drop

Reveniți la linia de timp a rădăcinii și selectați "shell_mc". Accesați panoul proprietăți și răsuciți săgeata Filtrelor. Faceți clic pe pictograma mică a paginii și selectați umbră. Acest lucru va aduce o adâncime mică.

Pasul 14 - Creați fișier XML și adăugați structură

Am terminat cu Flash pentru moment și trebuie să creați un fișier XML pentru a urmări imaginile noastre. Deschideți editorul de text preferat (aproape orice poate edita codul HTML) și creați un fișier nou. Salvați fișierul în dosarul proiectului ca content.xml. Acum trebuie să adăugăm o structură fișierului, astfel încât Flash să înțeleagă cum să folosească informațiile, putem face acest lucru cu următorul cod:

  

Pasul 15 - Adăugarea căilor de imagine la fișierul XML

Acum trebuie să adăugăm căi spre toate imaginile din prezentare (astfel Flash va "găsi" imaginile). În interiorul tagurile adaugă o nouă etichetă numită "imagine" și îi atribuie un atribut "imgurl". Acest atribut ar trebui să fie egal cu o cale de imagine relativă la fișierul xml. Va trebui să creați o nouă etichetă "imagine" pentru fiecare imagine pe care intenționați să o utilizați în prezentarea de diapozitive.

       

Salvați fișierul și închideți editorul de text.

Pasul 16 - Descărcați Tween Max

Vom folosi o bibliotecă tweening pentru a ne anima tranzițiile între imagini, deschideți astfel browserul dvs., accesați http://blog.greensock.com/tweenmaxas2/ și faceți clic pe butonul "descărcați AS2" din partea de sus. Deschideți fișierul zip pe care l-ați descărcat, apoi copiați dosarul "gs" și conținutul acestuia în folderul proiectului.

Este timpul să vă întoarceți la fișierul dvs. Flash și să începeți să scrieți ceva Actionscript. Selectează primul cadru din stratul "script" și deschideți Panoul de acțiuni (Fereastră> Acțiuni). Următorii pași vă solicită să editați conținutul ferestrei Acțiuni, de aceea, de acum încolo voi face referire la aceasta ca la "script". Pe măsură ce treceți prin pașii de mai jos, veți vedea tot scriptul creat până la acel punct, cu cele mai noi adăugiri evidențiate.

Pasul 17 - includeți Tween Max

Primul lucru pe care trebuie să-l facem este includerea clasei tween pe care am descărcat-o astfel încât să se compileze la crearea swf-ului. Adăugați în scriptul dvs. următorul cod:

import gs. *; import gs.easing. *;

Pasul 18 - Spuneți Flash pentru a încărca fișierul XML

(Linii suplimentare: 3-15)

 import gs. *; import gs.easing. *; var xmlPath = "content.xml"; var photos_xml = nou XML (); photos_xml.ignoreWhite = true; photos_xml.onLoad = function (succes) if (succes) // ----------- incarcare de succes altceva // ----------- problemă de încărcare, verificare cale urmărire ("Eroare la încărcarea fotografiilor_xml");  photos_xml.load (xmlPath);

Acest lucru creează un nou obiect XML care vizează fișierul nostru "content.xml". Deoarece fișierele XML nu se încarcă instantaneu, este important să verificați încărcarea completă. Facem acest lucru cu callback-ul onLoad care așteaptă încărcarea fișierului xml și apoi efectuează o acțiune.

Pasul 19 - Conversia datelor XML într-o matrice

Mai întâi trebuie să creăm un matrice numită "imageList". Odată ce fișierul xml este încărcat, vom aloca datele matricei, astfel încât să fie mai ușor de accesat mai târziu.

(Linii suplimentare: 7,10)

 import gs. *; import gs.easing. *; var xmlPath = "content.xml"; var photos_xml = nou XML (); photos_xml.ignoreWhite = true; var imageList: Array = Array nou (); photos_xml.onLoad = funcție (succes) if (succes) // ----------- încărcare succes imageList = photos_xml.firstChild.childNodes;  altceva // ----------- problemă de încărcare, verificați urmărirea căii ("Eroare la încărcarea fotografiilor_xml");  photos_xml.load (xmlPath);

Pasul 20 - Construiți cadrul de încărcare Movieclip

Creați un obiect de încărcător imagine utilizând clasa movieClipLoader și utilizați apelurile înapoi pentru a iniția comenzi atunci când filmul începe / termină încărcarea.

(Linii suplimentare: 17-27)

 import gs. *; import gs.easing. *; var xmlPath = "content.xml"; var photos_xml = nou XML (); photos_xml.ignoreWhite = true; var imageList: Array = Array nou (); photos_xml.onLoad = funcție (succes) if (succes) // ----------- încărcare succes imageList = photos_xml.firstChild.childNodes;  altceva // ----------- problemă de încărcare, verificați urmărirea căii ("Eroare la încărcarea fotografiilor_xml");  var imagineLoader: MovieClipLoader = nouClipClipLoader (); var loadListener: Object = obiect nou (); imageLoader.addListener (loadListener); loadListener.onLoadInit = funcția (target_mc: MovieClip, httpStatus: Number): Void  loadListener.onLoadComplete = funcția (target_mc: MovieClip): Void  photos_xml.load (xmlPath);

Pasul 21 - Creați o funcție de încărcare

După obiectul încărcătorului, avem nevoie de o funcție pentru a determina imaginile corecte. De asemenea, trebuie să adăugăm o variabilă pentru a urmări imaginea curentă. În interiorul funcției "loadImage", "loadURL" este setat la atributul XML pentru calea imaginii. Definiți un nou filmClip (targetClip) pentru un container pentru a încărca imaginea și pentru a seta acel container să aibă opacitate zero cu proprietatea _alpha.

Ultimul pas în funcție este de a încărca imaginea în container (imageLoader.loadClip). De asemenea, dorim să executați comanda "loadImage" imediat ce XML-ul a terminat cu succes încărcarea.

(Linii suplimentare: 11,18,31-38)

 import gs. *; import gs.easing. *; var xmlPath = "content.xml"; var photos_xml = nou XML (); photos_xml.ignoreWhite = true; var imageList: Array = Array nou (); photos_xml.onLoad = funcție (succes) if (succes) // ----------- încărcare succes imageList = photos_xml.firstChild.childNodes; loadImage ();  altceva // ----------- problemă de încărcare, verificați urmărirea căii ("Eroare la încărcarea fotografiilor_xml");  var actualImage: Număr = 0; var imagineLoader: MovieClipLoader = nouClipClipLoader (); var loadListener: Object = obiect nou (); imageLoader.addListener (loadListener); loadListener.onLoadInit = funcția (target_mc: MovieClip, httpStatus: Number): Void  loadListener.onLoadComplete = funcția (target_mc: MovieClip): Void  loadImage () var loadURL = imageList [currentImage] .attributes.imgurl; var targetClip = shell_mc.pics_mc.createEmptyMovieClip ("pic" + currentImage, shell_mc.pics_mc.getNextHighestDepth ()); targetClip._alpha = 0; // încărcați noua imagine imageLoader.loadClip (loadURL, targetClip);  photos_xml.load (xmlPath);

Pasul 22 - Adăugați un cronometru utilizând funcția setInterval

Construiți o funcție de temporizare care va apela funcția "loadImage" la fiecare 5000 milisecunde (5 secunde). Inițiați cronometrul atunci când are imaginea terminat încărcare, prin plasarea apelului în apelul onLoadComplete.

(Linii suplimentare: 29, 32-34)

 import gs. *; import gs.easing. *; var xmlPath = "content.xml"; var photos_xml = nou XML (); photos_xml.ignoreWhite = true; var imageList: Array = Array nou (); photos_xml.onLoad = funcție (succes) if (succes) // ----------- încărcare succes imageList = photos_xml.firstChild.childNodes; loadImage ();  altceva // ----------- problemă de încărcare, verificați urmărirea căii ("Eroare la încărcarea fotografiilor_xml");  var actualImage: Număr = 0; var imagineLoader: MovieClipLoader = nouClipClipLoader (); var loadListener: Object = obiect nou (); imageLoader.addListener (loadListener); loadListener.onLoadInit = funcția (target_mc: MovieClip, httpStatus: Number): Void  loadListener.onLoadComplete = funcția (target_mc: MovieClip): Void setTimer ();  funcția setTimer () timer = setInterval (loadImage, 5000);  funcția loadImage () var loadURL = imagineList [actualImage] .attributes.imgurl; var targetClip = shell_mc.pics_mc.createEmptyMovieClip ("pic" + currentImage, shell_mc.pics_mc.getNextHighestDepth ()); targetClip._alpha = 0; imageLoader.loadClip (loadURL, targetClip);  photos_xml.load (xmlPath);

Pasul 23 - Redimensionarea cadrului de imagine

Trebuie să redimensionăm "background_mc", "border_mc" și "mask_mc" ca dimensiune a imaginii încărcate. Biblioteca TweenMax / TweenLite este destul de ușor de utilizat. Sintaxa este TweenLite.to (clip destinație, timp în secunde, proprietăți: valoare, tip de ușurință); De asemenea, dorim ca imaginea să se estompeze după ce a fost încărcată, astfel încât setați _alpha to tween la 100% în cadrul onLoadComplete.

(Linii suplimentare: 25-27,31)

 import gs. *; import gs.easing. *; var xmlPath = "content.xml"; var photos_xml = nou XML (); photos_xml.ignoreWhite = true; var imageList: Array = Array nou (); photos_xml.onLoad = funcție (succes) if (succes) // ----------- încărcare succes imageList = photos_xml.firstChild.childNodes; loadImage ();  altceva // ----------- problemă de încărcare, verificați urmărirea căii ("Eroare la încărcarea fotografiilor_xml");  var actualImage: Număr = 0; var imagineLoader: MovieClipLoader = nouClipClipLoader (); var loadListener: Object = obiect nou (); imageLoader.addListener (loadListener); loadListener.onLoadInit = funcția (target_mc: MovieClip, httpStatus: Number): Void TweenLite.to (shell_mc.background_mc, 0.25, _width: target_mc._width + 20, _height: target_mc._height + 20, ease: Quad.easeOut ); TweenLite.to (shell_mc.border_mc, 0.25, _width: target_mc._width, _height: target_mc._height, ease: Quad.easeOut); TweenLite.to (shell_mc.mask_mc, 0,25, _width: target_mc._width, _height: target_mc._height, usurinta: Quad.easeOut);  loadListener.onLoadComplete = funcția (target_mc: MovieClip): Void TweenLite.to (target_mc, 0.25, autoAlpha: 100, delay: 0.25); setTimer ();  funcția setTimer () timer = setInterval (loadImage, 5000);  funcția removePrevious () if (prevImg! = undefined) removeMovieClip (prevImg);  // incrementați imaginea curentă dacă (currentImage < imageList.length -1) currentImage = currentImage + 1; else currentImage = 0;   function loadImage() var loadURL = imageList[currentImage].attributes.imgurl; var targetClip = shell_mc.pics_mc.createEmptyMovieClip("pic"+currentImage,shell_mc.pics_mc.getNextHighestDepth()); targetClip._alpha = 0; imageLoader.loadClip(loadURL,targetClip);  photos_xml.load(xmlPath);

Pasul 24 - Centrarea imaginii

Mai întâi găsiți centrul scenei împărțind înălțimea treptei cu 2 și lățimea treptei cu 2. Apoi, deoarece punctul de înregistrare al carcasei se află în partea stângă sus, deplasați clema în stânga centrului scenei cu jumătate lățimea cochiliei și până la jumătatea înălțimii cochiliei (variabilele clipXTarg și clipYtarg calculează numerele pentru fiecare imagine nouă). Este important să utilizați funcția Math.round () astfel încât numărul final să nu conțină o zecimală - aceasta forțează poziția finală la un pixel complet.

(Linii suplimentare: 28-30)

 import gs. *; import gs.easing. *; var xmlPath = "content.xml"; var photos_xml = nou XML (); photos_xml.ignoreWhite = true; var imageList: Array = Array nou (); photos_xml.onLoad = funcție (succes) if (succes) // ----------- încărcare succes imageList = photos_xml.firstChild.childNodes; loadImage ();  altceva // ----------- problemă de încărcare, verificați urmărirea căii ("Eroare la încărcarea fotografiilor_xml");  var actualImage: Număr = 0; var imagineLoader: MovieClipLoader = nouClipClipLoader (); var loadListener: Object = obiect nou (); imageLoader.addListener (loadListener); loadListener.onLoadInit = funcția (target_mc: MovieClip, httpStatus: Number): Void TweenLite.to (shell_mc.background_mc, 0.25, _width: target_mc._width + 20, _height: target_mc._height + 20, ease: Quad.easeOut ); TweenLite.to (shell_mc.border_mc, 0.25, _width: target_mc._width, _height: target_mc._height, ease: Quad.easeOut); TweenLite.to (shell_mc.mask_mc, 0,25, _width: target_mc._width, _height: target_mc._height, usurinta: Quad.easeOut); var clipXTarg = Math.round ((Stage.width / 2)) - ((target_mc._width + 20) / 2)); var clipYTarg = Math.round ((Stage.height / 2)) - ((target_mc._height + 20) / 2)); TweenLite.to (shell_mc, 0.25, _x: clipXTarg, _y: clipYTarg, usurinta: Quad.easeOut);  loadListener.onLoadComplete = funcția (target_mc: MovieClip): Void TweenLite.to (target_mc, 0.25, autoAlpha: 100, delay: 0.25); setTimer ();  funcția setTimer () timer = setInterval (loadImage, 5000);  funcția loadImage () var loadURL = imagineList [actualImage] .attributes.imgurl; var targetClip = shell_mc.pics_mc.createEmptyMovieClip ("pic" + currentImage, shell_mc.pics_mc.getNextHighestDepth ()); targetClip._alpha = 0; imageLoader.loadClip (loadURL, targetClip);  photos_xml.load (xmlPath);

Pasul 25 - Identificarea imaginii anterioare

Trebuie să găsim imaginea încărcată anterior pentru a fi eliminată. Evident, dacă imaginea curentă este una unde în mijlocul listei, atunci imaginea anterioară este una mai mică decât numărul curentImage. Cu toate acestea, dacă imaginea curentă este egală cu zero, atunci imaginea anterioară (presupunând că prezentarea de diapozitive a străbătut fiecare imagine) ar fi ultima imagine din matrice sau imageList.length - 1. Luați numărul imaginii anterioare și formați calea filmului coajă anterioară a imaginii.

(Linii suplimentare: 32-37)

 import gs. *; import gs.easing. *; var xmlPath = "content.xml"; var photos_xml = nou XML (); photos_xml.ignoreWhite = true; var imageList: Array = Array nou (); photos_xml.onLoad = funcție (succes) if (succes) // ----------- încărcare succes imageList = photos_xml.firstChild.childNodes; loadImage ();  altceva // ----------- problemă de încărcare, verificați urmărirea căii ("Eroare la încărcarea fotografiilor_xml");  var actualImage: Număr = 0; var imagineLoader: MovieClipLoader = nouClipClipLoader (); var loadListener: Object = obiect nou (); imageLoader.addListener (loadListener); loadListener.onLoadInit = funcția (target_mc: MovieClip, httpStatus: Number): Void TweenLite.to (shell_mc.background_mc, 0.25, _width: target_mc._width + 20, _height: target_mc._height + 20, ease: Quad.easeOut ); TweenLite.to (shell_mc.border_mc, 0.25, _width: target_mc._width, _height: target_mc._height, ease: Quad.easeOut); TweenLite.to (shell_mc.mask_mc, 0,25, _width: target_mc._width, _height: target_mc._height, usurinta: Quad.easeOut); var clipXTarg = Math.round ((Stage.width / 2)) - ((target_mc._width + 20) / 2)); var clipYTarg = Math.round ((Stage.height / 2)) - ((target_mc._height + 20) / 2)); TweenLite.to (shell_mc, 0.25, _x: clipXTarg, _y: clipYTarg, usurinta: Quad.easeOut); dacă (actualImage == 0) var prevImgNum = imageList.length -1;  altfel var prevImgNum = currentImage - 1;  var prevImg = shell_mc.pics_mc ["pic" + prevImgNum];  loadListener.onLoadComplete = funcția (target_mc: MovieClip): Void TweenLite.to (target_mc, 0.25, autoAlpha: 100, delay: 0.25); setTimer ();  funcția setTimer () timer = setInterval (loadImage, 5000);  funcția loadImage () var loadURL = imagineList [actualImage] .attributes.imgurl; var targetClip = shell_mc.pics_mc.createEmptyMovieClip ("pic" + currentImage, shell_mc.pics_mc.getNextHighestDepth ()); targetClip._alpha = 0; imageLoader.loadClip (loadURL, targetClip);  photos_xml.load (xmlPath);

Pasul 26 - Fade Out și Remove

Apoi vrem să decolorăm imaginea anterioară și atunci când ajunge la zero _alpha trebuie să scoatem clipul din stadiu în întregime. Modul onComplete: removePrevious așteaptă până când se termină decolorarea și apoi apelează un "removePrevious". Ca măsură de siguranță, este întotdeauna o idee bună să vă asigurați că clipul pe care încercăm să-l eliminăm de fapt. Prin urmare, utilizați o declarație "if" pentru a verifica dacă clipul nu este nedefinit (Cuvântul lui Flash pentru nu există).

(Linii suplimentare: 38,50-54)

 import gs. *; import gs.easing. *; var xmlPath = "content.xml"; var photos_xml = nou XML (); photos_xml.ignoreWhite = true; var imageList: Array = Array nou (); photos_xml.onLoad = funcție (succes) if (succes) // ----------- încărcare succes imageList = photos_xml.firstChild.childNodes; loadImage ();  altceva // ----------- problemă de încărcare, verificați urmărirea căii ("Eroare la încărcarea fotografiilor_xml");  var actualImage: Număr = 0; var imagineLoader: MovieClipLoader = nouClipClipLoader (); var loadListener: Object = obiect nou (); imageLoader.addListener (loadListener); loadListener.onLoadInit = funcția (target_mc: MovieClip, httpStatus: Number): Void TweenLite.to (shell_mc.background_mc, 0.25, _width: target_mc._width + 20, _height: target_mc._height + 20, ease: Quad.easeOut ); TweenLite.to (shell_mc.border_mc, 0.25, _width: target_mc._width, _height: target_mc._height, ease: Quad.easeOut); TweenLite.to (shell_mc.mask_mc, 0,25, _width: target_mc._width, _height: target_mc._height, usurinta: Quad.easeOut); var clipXTarg = Math.round ((Stage.width / 2)) - ((target_mc._width + 20) / 2)); var clipYTarg = Math.round ((Stage.height / 2)) - ((target_mc._height + 20) / 2)); TweenLite.to (shell_mc, 0.25, _x: clipXTarg, _y: clipYTarg, usurinta: Quad.easeOut); dacă (actualImage == 0) var prevImgNum = imageList.length -1;  altfel var prevImgNum = currentImage - 1;  var prevImg = shell_mc.pics_mc ["pic" + prevImgNum]; TweenLite.to (prevImg, 0.25, autoAlpha: 0, onComplete: removePrevious);  loadListener.onLoadComplete = funcția (target_mc: MovieClip): Void TweenLite.to (target_mc, 0.25, autoAlpha: 100, delay: 0.25); setTimer ();  funcția setTimer () timer = setInterval (loadImage, 5000);  funcția removePrevious () if (prevImg! = undefined) removeMovieClip (prevImg);  funcția loadImage () var loadURL = imageList [actualImage] .attributes.imgurl; var targetClip = shell_mc.pics_mc.createEmptyMovieClip ("pic" + currentImage, shell_mc.pics_mc.getNextHighestDepth ()); targetClip._alpha = 0; imageLoader.loadClip (loadURL, targetClip);  photos_xml.load (xmlPath);

Pasul 27 - Imaginea următoare din secvență

Acum trebuie să creștem valoarea curentă, astfel încât atunci când cronometrul să se finalizeze, Flash știe ce imagine să se încarce în continuare. La fel ca imaginea precedentă, dacă imaginea curentă este un număr, cu excepția ultimei imagini din listă, pur și simplu adăugăm unul la numărul curent. Cu toate acestea, dacă imaginea curentă este ultimul element din listă, atunci imaginea "următoare" va începe lista cu prima imagine din listă (poziția zero în matrice).

(Linii suplimentare: 55-59)

 import gs. *; import gs.easing. *; var xmlPath = "content.xml"; var photos_xml = nou XML (); photos_xml.ignoreWhite = true; var imageList: Array = Array nou (); photos_xml.onLoad = funcție (succes) if (succes) // ----------- încărcare succes imageList = photos_xml.firstChild.childNodes; loadImage ();  altceva // ----------- problemă de încărcare, verificați urmărirea căii ("Eroare la încărcarea fotografiilor_xml");  var actualImage: Număr = 0; var imagineLoader: MovieClipLoader = nouClipClipLoader (); var loadListener: Object = obiect nou (); imageLoader.addListener (loadListener); loadListener.onLoadInit = funcția (target_mc: MovieClip, httpStatus: Number): Void TweenLite.to (shell_mc.background_mc, 0.25, _width: target_mc._width + 20, _height: target_mc._height + 20, ease: Quad.easeOut ); TweenLite.to (shell_mc.border_mc, 0.25, _width: target_mc._width, _height: target_mc._height, ease: Quad.easeOut); TweenLite.to (shell_mc.mask_mc, 0,25, _width: target_mc._width, _height: target_mc._height, usurinta: Quad.easeOut); var clipXTarg = Math.round ((Stage.width / 2)) - ((target_mc._width + 20) / 2)); var clipYTarg = Math.round ((Stage.height / 2)) - ((target_mc._height + 20) / 2)); TweenLite.to (shell_mc, 0.25, _x: clipXTarg, _y: clipYTarg, usurinta: Quad.easeOut); dacă (actualImage == 0) var prevImgNum = imageList.length -1;  altfel var prevImgNum = currentImage - 1;  var prevImg = shell_mc.pics_mc ["pic" + prevImgNum]; TweenLite.to (prevImg, 0.25, autoAlpha: 0, onComplete: removePrevious);  loadListener.onLoadComplete = funcția (target_mc: MovieClip): Void TweenLite.to (target_mc, 0.25, autoAlpha: 100, delay: 0.25); setTimer ();  funcția setTimer () timer = setInterval (loadImage, 5000);  funcția removePrevious () if (prevImg! = undefined) removeMovieClip (prevImg);  dacă (actualImage < imageList.length -1) currentImage = currentImage + 1; else currentImage = 0;   function loadImage() var loadURL = imageList[currentImage].attributes.imgurl; var targetClip = shell_mc.pics_mc.createEmptyMovieClip("pic"+currentImage,shell_mc.pics_mc.getNextHighestDepth()); targetClip._alpha = 0; imageLoader.loadClip(loadURL,targetClip);  photos_xml.load(xmlPath);

Pasul 28 - Scoateți cronometrul

Cele mai multe funcții Actionscript apar aproape instantaneu, însă încărcarea imaginilor necesită o anumită perioadă de timp. Acest timp depinde de viteza de conectare la rețea și dimensiunea imaginii și, prin urmare, poate dura câteva secunde. Trebuie să scoatem cronometrul până când imaginea sa terminat de încărcat, astfel încât expunerea de diapozitive să fie o durată consistentă după încărcarea imaginii. O linie simplă de cod (clearInterval) elimină intervalul de 5 secunde până când este resetat de către setInterval care rulează din nou.

(Linie suplimentară: 66)

 import gs. *; import gs.easing. *; var xmlPath = "content.xml"; var photos_xml = nou XML (); photos_xml.ignoreWhite = true; var imageList: Array = Array nou (); photos_xml.onLoad = funcție (succes) if (succes) // ----------- încărcare succes imageList = photos_xml.firstChild.childNodes; loadImage ();  altceva // ----------- problemă de încărcare, verificați urmărirea căii ("Eroare la încărcarea fotografiilor_xml");  var actualImage: Număr = 0; var imagineLoader: MovieClipLoader = nouClipClipLoader (); var loadListener: Object = obiect nou (); imageLoader.addListener (loadListener); loadListener.onLoadInit = funcția (target_mc: MovieClip, httpStatus: Number): Void TweenLite.to (shell_mc.background_mc, 0.25, _width: target_mc._width + 20, _height: target_mc._height + 20, ease: Quad.easeOut ); TweenLite.to (shell_mc.border_mc, 0.25, _width: target_mc._width, _height: target_mc._height, ease: Quad.easeOut); TweenLite.to (shell_mc.mask_mc, 0,25, _width: target_mc._width, _height: target_mc._height, usurinta: Quad.easeOut); var clipXTarg = Math.round ((Stage.width / 2)) - ((target_mc._width + 20) / 2)); var clipYTarg = Math.round ((Stage.height / 2)) - ((target_mc._height + 20) / 2)); TweenLite.to (shell_mc, 0.25, _x: clipXTarg, _y: clipYTarg, usurinta: Quad.easeOut); dacă (actualImage == 0) var prevImgNum = imageList.length -1;  altfel var prevImgNum = currentImage - 1;  var prevImg = shell_mc.pics_mc ["pic" + prevImgNum]; TweenLite.to (prevImg, 0.25, autoAlpha: 0, onComplete: removePrevious);  loadListener.onLoadComplete = funcția (target_mc: MovieClip): Void TweenLite.to (target_mc, 0.25, autoAlpha: 100, delay: 0.25); setTimer ();  funcția setTimer () timer = setInterval (loadImage, 5000);  funcția removePrevious () if (prevImg! = undefined) removeMovieClip (prevImg);  dacă (actualImage < imageList.length -1) currentImage = currentImage + 1; else currentImage = 0;   function loadImage() var loadURL = imageList[currentImage].attributes.imgurl; var targetClip = shell_mc.pics_mc.createEmptyMovieClip("pic"+currentImage,shell_mc.pics_mc.getNextHighestDepth()); targetClip._alpha = 0; clearInterval(timer); imageLoader.loadClip(loadURL,targetClip);  photos_xml.load(xmlPath);

Pasul 29 - Opriți cronologia

În cele din urmă, trebuie să oprim cronologia. Funcția prestabilită a funcției Flash este de a reda temporal linia temporală, cu excepția cazului în care se specifică altceva În cazul în care există doar un cadru pe cronologie, Flash va continua să încerce să ruleze același cod de peste și peste din nou, rezultând în aceeași imagine încercând să încărcați în mod repetat.

(Linie suplimentară: 72)

 import gs. *; import gs.easing. *; var xmlPath = "content.xml"; var photos_xml = nou XML (); photos_xml.ignoreWhite = true; var imageList: Array = Array nou (); photos_xml.onLoad = funcție (succes) if (succes) // ----------- încărcare succes imageList = photos_xml.firstChild.childNodes; loadImage ();  altceva // ----------- problemă de încărcare, verificați urmărirea căii ("Eroare la încărcarea fotografiilor_xml");  var actualImage: Număr = 0; var imagineLoader: MovieClipLoader = nouClipClipLoader (); var loadListener: Object = obiect nou (); imageLoader.addListener (loadListener); loadListener.onLoadInit = funcția (target_mc: MovieClip, httpStatus: Number): Void TweenLite.to (shell_mc.background_mc, 0.25, _width: target_mc._width + 20, _height: target_mc._height + 20, ease: Quad.easeOut ); TweenLite.to (shell_mc.border_mc, 0.25, _width: target_mc._width, _height: target_mc._height, ease: Quad.easeOut); TweenLite.to (shell_mc.mask_mc, 0,25, _width: target_mc._width, _height: target_mc._height, usurinta: Quad.easeOut); var clipXTarg = Math.round ((Stage.width / 2)) - ((target_mc._width + 20) / 2)); var clipYTarg = Math.round ((Stage.height / 2)) - ((target_mc._height + 20) / 2)); TweenLite.to (shell_mc, 0.25, _x: clipXTarg, _y: clipYTarg, usurinta: Quad.easeOut); dacă (actualImage == 0) var prevImgNum = imageList.length -1;  altfel var prevImgNum = currentImage - 1;  var prevImg = shell_mc.pics_mc ["pic" + pr


Cod