E-learn.ro
Panou utilizatori
Utilizator Parola
Creeaza cont nou    Recupereaza parola
Login
Newsletter
Introdu adresa ta de email
Inscrie-te
Inchide panoul de utilizatori
Add to Google

Tutoriale Adobe Flash

Descarca toolbar

Toolbar E-learn.ro Facebook Twitter

GRAFICA 2D  /  Adobe Flash  /  ActionScript (14)

Lant cu ciocniri si urmarirea mouse-ului

22.01.2009
Lant cu ciocniri si urmarirea mouse-ului

In acest tutorial vei putea citi despre realizarea unei aplicatii Flash in Action Script 2.

Total vizualizari: 7352 7352 afisari   |   Comentarii  0   |   Rating   |   (5 voturi)   |   Timp necesar: 30 min 30 min   |   Nivel de cunostiinte necesar: Mediu  Mediu

Sursa:  http://www.actionscript.org  
Autor:  Alejandro Quarto
Download
Adauga la tutoriale favorit Adauga la tutoriale favorite
Pagina:
1 2 »
comenteaza printeaza

In acest tutorial va fi explicat un exemplu simplu de aplicatie Flash.

Nota: Codul prezentat mai jos poate fi optimizat, el nu reprezinta neaparat cea mai buna metoda de a realiza acest efect. In schimb, exemplul este simplu de inteles, astfel incat chiar si incepatorii sa poate obtine rezultate acceptabile in doar cateva ore.

Iata unul dintre posibilele efecte pe care le poti obtine parcurgand acest tutorial:

In principiu avem un lant compus dintr-un numar de X bile. Prima bila va urmari intotdeauna mouse-ul, cea de-a doua bila o va urmari pe prima, cea de-a treia bila o va urmari pe a doua, s.a.m.d.

Pare simplu, dar complexitatea acestui exemplu consta in manipularea ciocnilor dintre bile, ceea ce inseamna ca va trebui sa depistezi suprapunerea lor si sa le pozitionezi corespunzator.

Deoarece implementarea acestei aplicatii necesita o multime de calcule matematice, vei incepe cu mostenirea clasei Math, pentru a-i putea adauga cateva metode utile.

Mostenirea clasei Math

Pentru inceput, creeaza un fisier ActionScript (.as). Deoarece vei scrie doar cod, momentan nu ai nevoie de un fisier .fla.

Ideea de baza este definirea de functii care vor fi apelate ulterior din fisierul .fla. In acest tutorial nu vor fi folosite toate metodele prezentate mai jos, dar este bine sa le pastrezi ca exemplu.

Iata codul:

class Math2 extends Math {
 static function rndBetween(n1:Number, n2:Number) {
  return n1+random(n2-n1+1);
 }
 static function radToDeg(n:Number) {
  return n*180/Math.PI;
 }
 static function degToRad(n:Number) {
  return n/180*Math.PI;
 }
 static function degSin(n:Number) {
  return Math.sin(n/180*Math.PI);
 }
 static function degCos(n:Number) {
  return Math.cos(n/180*Math.PI);
 }
 static function degTan(n:Number) {
  return Math.tan(n/180*Math.PI);
 }
 static function angleBetweenRad(x1:Number, y1:Number, x2:Number, y2:Number) {
  return Math.atan2((y1-y2), (x1-x2));
 }
 static function angleBetweenDeg(x1:Number, y1:Number, x2:Number, y2:Number) {
  return Math.atan2((y1-y2), (x1-x2))*180/Math.PI;
 }
 static function distanceBetween(x1:Number, y1:Number, x2:Number, y2:Number) {
  return Math.sqrt(Math.pow((y1-y2),2)+ Math.pow((x1-x2),2));
 }
}

Prima linie va defini clasa Math2 ca fiind un copil al clasei Math. Functionalitatea metodelor incluse in Math2 este urmatoarea:

rndBetween – returneaza un numar aleator din intervalul [n1, n2]
radToDeg – transforma parametrul n din radiani in grade
degToRad – transforma parametrul n din grade in radiani
degSin – returneaza sinusul unghiului dat de valoarea n (n este exprimat in radiani)
degCos – returneaza cosinusul unghiului dat de valoarea n (n este exprimat in radiani)
degTan – returneaza tangenta unghiului dat de valoarea n (n este exprimat in radiani)
angleBetweenRad – returneaza valoarea in radiani a unghiului dintre segmentul definit de punctele (x1,y1) si (x2,y2) si axa Ox
angleBetweenDeg – returneaza valoarea in grade a unghiului dintre segmentul definit de punctele (x1,y1) si (x2,y2) si axa Ox
distanceBetween – returneaza distanta dintre punctele (x1,y1) si (x2,y2)

Salveaza codul de mai sus intr-un fisier denumit Math2.as, altfel nu va functiona, si copiaza-l in acelasi director cu fisierul principal .fla.

Incarcarea bilelor pe scena

Urmatorul lucru de care ai nevoie este o bila, pe care o poti desena ca un simplu cerc. Dupa ce ai creat forma respectiva, selecteaz-o si apasa F8 pentru a o transforma intr-un MovieClip. In fereastra care apare selecteaza optiunea „Export for Action Script” si, in campul Identifier, completeaza numele „circle”. Apasa OK si sterge movie clip-ul de pe scena.

Deoarece ai extins clasa Math, va trebui sa o importi pentru a o putea utiliza. Pe primul frame din fisierul .fla, adauga urmatoarea instructiune.

import Math2;

In continuare vei incarca simbolul cu bila din librarie. Pentru aceasta, trebuie sa folosesti functia init() de mai jos:

function init() {
 balls = 20;
 reductionMultiplier = 1;
 for (i=1; i<=balls; i++) {
  this.attachMovie("circle","mc"+i,_root.getNextHighestDepth(),{_x:30*i, _y:200});
 }
}
init();

In codul de mai sus, variabila balls reprezinta numarul de bile care vor fi incarcate pe scena, reductionMultiplier este un factor care iti va folosi pentru a controla viteza cu care bilele se urmaresc una pe cealalta. Daca pentru acest factor vei utiliza o valoare supraunitara ( > 1 ), animatia va fi incetinita si va deveni mai elastica.

Definirea acestor variabile este urmata de o bucla for care incarca bilele pe scena cu ajutorul functiei attachMovie. Pozitia lor initiala este la latitudinea ta.

Ultima instructiune este reprezentata de apelul functiei init().

Pagina:
1 2 »
comenteaza printeaza
Alte tutoriale Adobe Flash:
Noteaza acest tutorial
Rating tutorial
 
(5 voturi)
Pentru a nota acest tutorial, trebuie sa fii logat!
Posteaza un comentariu
Pentru a posta un comentariu, trebuie sa fii logat!
0 TOP UTILIZATORI* 0 0
Tutoriale scrise de claibornelara
claibornelara Rang utilizator claibornelara - Incepator
5315
Tutoriale scrise de mcuemica
mcuemica Rang utilizator mcuemica - Incepator
5275
Tutoriale scrise de ellarichards
ellarichards Rang utilizator ellarichards - Incepator
5120
Tutoriale scrise de emonclercheap
emonclercheap Rang utilizator emonclercheap - Incepator
5105
Tutoriale scrise de beacherrosa
beacherrosa Rang utilizator beacherrosa - Incepator
4850
* Acest top reprezinta punctajele acumulate in ultimele 30 de zile.
Ruby on Rails Powerpoint SWF SEO JSON PSD Sony Vegas MySQL PHP Action Script StyleSheet Fotografie AJAX Excel Outlook Verilog Lightroom Photoshop CSS XML Gimp HTML Word Dreamweaver COREL DRAW Javascript Fireworks Java Vista Illustrator Flash Bridge XHTML RoR Swift 3D Python
Promovare:
Daca faci parte din comunitatea E-learn.ro si doresti promovarea acesteia, poti accesa pagina de promovare.
Arhiva newsletter:
Daca ai ratat un numar mai vechi, sau vrei sa revezi care au fost noutatile E-learn.ro la un moment dat, poti accesa arhiva de newslettere.
  Copyright © 2008-2013 E-LEARN.ro. Toate drepturile rezervate. Termeni si conditii.
Conceput si realizat de Neokinetics Software