Curs Flash

Cursorul mouse-ului e modul cel mai comun prin care utilizatorul interactioneaza cu prezentarea Flash.
Evenimentele pentru mouse sunt diferitele actiuni ce pot fi facute cu mouse-ul, cum e apasarea Click, pozitionarea cursorului deasupra unui obiect sau chiar simpla miscare a lui. Toate aceste actiuni se numesc "evenimente de mouse" (mouse events) si pot fi detectate de clasa MouseEvent.
Tipul evenimentelor din categoria MouseEvent sunt:


Iata un exemplu cu MouseEvent pentru CLICK, MOUSE_MOVE si MOUSE_DOWN. Va fi creata o prezentare flash cu 2 cadre, in primul se adauga un buton si in al doilea o figura geometrica (o stea). Se adauga cod ActionScript 3 prin care atunci cand e apasat butonul se face salt la cadrul 2, in care e steaua. Cand mouse-ul e miscat pe stea, aceasta se invarte si se micsoreaza, iar daca se apasa click pe ea (MOUSE_DOWN) face salt la primul cadru, (cu butonul).
1. Deschideti un document Flash nou, ActionScript 3.0
2. Desenati in Scena un oval (sau un dreptunghi), (puteti adauga si un text, "Click" pe oval, cu "Text Tool"), selectati-l si transformati-l in Buton (din Modify -> Convert to Symbol iar la Type alegeti Button).
3. Dati numele buton instantei butonului din Scena (in panoul Properties, sus, unde e scris "<Instance Name>"). Dupa cum se vede in imaginea urmatoare.
Buton - Exemplu MouseEvent
4. Click-dreapta pe Cadrul 2 in Timeline si alegeti "Insert Blank Keyframe" (se creaza un cadru nou gol). Si selectati instrumentul pentru desenat figuri geometrice "PolyStar Tool" (situat la butonul cu dreptunghi).
5. Click pe butonul Options din panoul Properties pt. "PolyStar Tool", si in fereastra care se deschide, la Style alegeti optiunea star (ca sa deseneze o stea, puteti modifica numarul de colturi la "Number of Sides") si apasati OK.
6. Alegeti o culoare gradient pentru stea (de la butonul Fill Color, cea cu multe culori, pt. un efect al rotirii mai vizibil) si desenati in Scena o stea.
7. Transformati steaua in Movie Clip (de la meniul Modify -> Convert to Symbol, iar la Type puneti Movie Clip si apasati OK), apoi, in panoul Properties, in partea de sus, unde e scris "<Instance Name>" scrieti numele stea petru aceasta instanta (e necesar ca sa fie folosit in codul ActionScript).
8. Creati un nou Layer (din Insert -> Timeline -> Layer) care va fi utilizat pt. adaugare coduri ActionScript.
  - Puteti sa-i dati un nume specific (de ex. "Actions" sau "Scripts"), prin dublu-click pe numele lui.
9. Click-dreapta pe Cadru 1 din acest al doilea Layer, alegeti Actions, iar in fereastra care se deschide pt. scriere cod ActionScript adaugati codul urmator.
stop();         // Opreste prezentarea la cadrul 1

// Inregistrare eveniment de mouse ( CLICK ) la instanta nuton
buton.addEventListener(MouseEvent.CLICK, gotoF2);

// Functia apelata la declansarea evenimentului inregistrat
function gotoF2(event:MouseEvent):void
{
  gotoAndStop(2);        // Face salt si oprire la Cadru 2
}
10. Click-dreapta pe Cadru 2 din Layer-ul nou creat, alegeti Actions, iar in fereastra care se deschide pt. scriere cod ActionScript copiati codul urmator.
// Inregistrare eveniment de mouse ( MOUSE_MOVE ) la instanta stea
stea.addEventListener(MouseEvent.MOUSE_MOVE, rotate);

// Inregistrare inca un eveniment de mouse ( MOUSE_DOWN ) la instanta stea
stea.addEventListener(MouseEvent.MOUSE_DOWN, gotoF1);

// Functia apelata la declansarea evenimentului MOUSE_MOVE
function rotate(evt:Event):void
{
  // Rotire obiect ce a declansat evenimentul
  evt.target.rotationZ -= 2;

  // Daca lungimea acestui obiect e mai mare de 80 pixeli
  // micsoreaza lungimea si inaltimea cu 5
  if(evt.target.width>88) {
    evt.target.width -= 5;
    evt.target.height -= 5;
  }
}

// Functia apelata la declansarea evenimentului MOUSE_DOWN
function gotoF1(evt2:MouseEvent):void
{
  gotoAndStop(1);        // Face salt si oprire la Cadru 1
}
  - Acesta este folosit de Flash cand prezentarea ajunge la cadru 2.
- Prin comanda "stop()" se opreste prezentarea la Cadrul unde e adaugata, ca sa ramana ce e afisat in el; altfel ar fi continuat cu urmatorul Frame.
- expresia "evt.target" face referire la elementul care a initializat evenimentul detectat.
- "evt.target.rotationZ -= 2;" roteste cu 2 grade in plan Z obiect ce a declansat evenimentul.
- Acest cod va afisa urmatoarea prezentare Flash. Apasati click pe buton apoi miscati mouse-ul pe steaua care apare si dati click pe ea.

Coordonate Mouse

Cu obiectul MouseEvent se poate captura /afla si coordonatele mouse-ului in prezentarea Flash. Acesta are urmatoarele proprietati pentru aflarea pozitiei cursorului de mouse, in raport cu scena (coltul stanga-sus) si in raport cu elementul ce declanseaza evenimentul.

Preluand aceste coordonate, se pot executa diferite instructiuni si comenzi in functie de valoarea lor. Dupa cum puteti vedea in exemplul urmator.
Efectuati urmatorii pasi.
1. Deschideti un document Flash nou, ActionScript 3.0
2. Desenati pe mijlocul Scenei un dreptungi si transformati-l in Movie Clip (de la meniul Modify -> Convert to Symbol, iar la Type alegeti Movie Clip si apasati OK), apoi, in panoul Properties, in partea de sus, unde e scris "<Instance Name>" scrieti numele dreptunghi (numele de instanta folosit in codul ActionScript).
3. Alegeti instrumentul "Text Tool" si scrieti deasupra dreptunghiului: Coordonate in Scena, si dati acestui camp de text numele de instanta txtS.
Scrieti si sub dreptungi textul Coordonate in Dreptungi, si dati acestui camp de text numele de instanta txtD. Dupa cum se vede in imaginea urmatoare.
Coordonate Mouse
4. Click-dreapta pe cadrul 1 in Timeline si alegeti Action, iar in panoul care se deschide pt. ActionScript adaugati urmatorul cod:
// Inregistrare eveniment de mouse ( MOUSE_MOVE ) la instanta dreptunghi
dreptunghi.addEventListener(MouseEvent.MOUSE_MOVE, getCoord);

// Functia apelata
function getCoord(evt:MouseEvent):void
{
  // Adauga coordonatele mouse-scena in instanta txtS
  txtS.text = 'Coordonate in Scena: '+ evt.stageX+ ', '+ evt.stageY;

  // Adauga coordonatele mouse-dreptunghi in instanta txtD
  txtD.text = 'Coordonate in Dreptunghi: '+ evt.localX+ ', '+ evt.localY;

  // Setare variabila 'culoare' pt. schimbarea culorii
  var  culoare:ColorTransform  =  dreptunghi.transform.colorTransform;
	
  // Daca coordonata X locala e mai mare de 90 (pixeli) seteaza culoare galbena
  // Altfel, o seteaza verde
  if(evt.localX>90) culoare.color = 0xeded01;
  else culoare.color = 0x00fe00;

  // Aplica schimbarea culoarii la instanta dreptunghi
  dreptunghi.transform.colorTransform = culoare;
}
5. Apasati Ctrl+Enter ca sa testati rezultatul. Va apare urmatoarea prezentare Flash:. - Daca miscati mouse-ul pe dreptunghi, in textul de sus va afisa si locatia cursorului in raport cu Scena, si in campul text de jos va afisa coordonatele cursorului in dreptunghi (in raport cu coltul din stanga-sus al lui).
- Cand mouse-ul ajunge pe dreptunghi la coordonate X (pe orizontala) cu valoare mai mare de 90 pixeli (in jumatatea dreapta a dreptunghiului) schimba culoarea acestuia.
- "evt.stageX", "evt.stageY", "evt.localX" si "evt.localY" returneaza coordonatele mouse-ului, in Scena si dreptunghi, stocate in obiectul "evt".
- Alte explicatii necesare sunt in cod.

- Fisierele FLA cu exemplele din aceasta lectie pot fi descarcate de la:
  1. Evenimente mouse
  2. Coordonate mouse

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tag defineste zona de click intr-o harta creata dintr-o imagine?
<map> <img> <area>
<img src="image.jpg" usemap="#map1">
<map name="map1">
  <area shape="rect" coords="9, 120, 56, 149" href="#">
  <area shape="rect" coords="100, 200, 156, 249" href="#">
</map>
Ce proprietate CSS indica ce sa se intample cand continutul unui element depaseste dimensiunile lui?
display overflow position
#id {
  overflow: auto;
}
Clic pe evenimentul care este declansat cand mouse-ul e deasupra unui obiect.
onclick onmouseover onmouseout
document.getElementById("id").onmouseover = function(){
  document.write("Sa ai Viata Buna");
}
Indicati variabila PHP ce contine datele adaugate in adresa URL, dupa caracterul "?".
$_SESSION $_GET $_POST
if(isset($_GET["id"])) {
  echo $_GET["id"];
}
Clic pe pronumele reflexiv care e potrivit in propozitia: "Marc is the boy ... won the prize".
who which whoever
Marc is the boy who won the prize.
- Marc e baiatul care a castigat premiul.
Clic pe pronumele reflexiv care e potrivit in propozitia: "Voy a ver al pintor de ... les hablé ayer".
que quien cuyo
Voy a ver al pintor de quien les hablé ayer.
- Ma duc sa vad pictorul despre care ti-am vorbit ieri.
MouseEvent - Evenimente pentru Mouse

Last accessed pages

  1. Pronumele direct 3 (1067)
  2. Sufixele -ful, -less si -ness - ful, less and ness suffixes (16835)
  3. Script Utilizatori - Inregistrare si Autentificare / Logare (2228)
  4. Pronume direct 2 (1144)
  5. Poezii pentru copii, in engleza (38496)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (1072)
  2. Curs HTML gratuit Tutoriale HTML5 (884)
  3. Coduri pt culori (623)
  4. Creare si editare pagini HTML (516)
  5. Conditional IF in Limba Engleza - Fraze Conditionale (469)