Cum se face lupa in Flash / Magnifying Glass |
Cum se face lupa de marire in Flash / Magnifying Glass Acest tutorial Flash invata cum se face lupa pentru vizionarea imaginii. Lupa exista nu doar in lume reala, dar si in Flash, unde uneori este necesara marirea textului sau a unei portiuni din imagine. Se poate folosi pentru ajutorul oamenilor care au probleme cu vederea sau altele. Creaza un nou movieclipsi deseneaza o lupa; coloreaza regiunea lentilei cu orice culoare dupa dorinta(aici se foloseste culoare rosie) ![]() Selecteaza rosu si apasa F8, prin aceasta veti crea un nou movieclip, pe care il vom folosi ca masca Dupa convertire il eliminati din movieclip a lupei Trage ambele movieclipuri in scenariu, unul cu instanse denumire de "imgMask" si celalalt "magGlass". Acum creaza un nou movieclip - container pentru imaginea noastra si il tragem in scenariu. II dam instanse denumire "imgHolder". Inseram codul de mai jos in 1 frame: //incarcam imaginea numita "image.jpg" in movieclip imgHolder loadMovie('image.jpg', imgHolder); //ascundem cursor Mouse.hide(); //movieclip nou - container imaginii marite this.createEmptyMovieClip("zoomImg", 33); //setam masca in movieclip , pentru ca imaginea marita sa fie de forma rotunda zoomImg.setMask(imgMask); // bitmap obiect pentru marirea imaginii var zoomBitmap = new flash.display.BitmapData(155, 155, false, 0xEAEAEA); //atasam bitmap la movie "zoomImg" zoomImg.attachBitmap(zoomBitmap, 5); //puterea maririi, daca marim aceasta sa mareste imaginea mai tare var magPower = 2; //matrix obiect pentru poztionarea bitmap marit in interiorul lupei var zoomMtx = new flash.geom.Matrix(); //setam scara imaginii cu ajutorul "magPower" zoomMtx.scale(magPower, magPower); //modificam adancimea pentru movie lupa, ca sa fie deasupra magGlass.swapDepths(_root.getNextHighestDepth()); _root.onEnterFrame = function() { //setam movie lupei pe poitia mousului magGlass._x = _xmouse - 70; //deci mouse in mijlocul lupei magGlass._y = _ymouse - 70; //movie marit al imaginii zoomImg._x = magGlass._x; zoomImg._y = magGlass._y; //masca movie imgMask._x = magGlass._x; imgMask._y = magGlass._y; //unde sa deseneaza/apare imaginea marita zoomMtx.tx = -_xmouse * magPower; zoomMtx.ty = -_ymouse * magPower; //desenam imaginea marita folosind imaginea //in container si pozitiamatrix. zoomBitmap.draw(imgHolder, zoomMtx); } Aceasta lucreaza cu orice imagine, alege alta imagine si denumeste "image.jpg", testeaza Lamurire cod: loadMovie('image.jpg', imgHolder); Incarca "image.jpg" in movie "imgHolder" //ascunde mouse Mouse.hide(); code: this.createEmptyMovieClip("zoomImg", 33); Creaza movie gol pentru imaginea marita zoomImg.setMask(imgMask); Setam masca in "zoomImg" folosind movie "imgMask", ca imaginea marita sa nu se suprapuna pe lupa Parametrii pentru functie folosita setMask(Mask_MC); var zoomBitmap = new flash.display.BitmapData(155, 155, false, 0xEAEAEA); Creaza BitmapData nouacu inaltime si latime de 155px, netransparenta si cu culoarea fundalului interior de "0xEAEAEA". new BitmapData(width, height, transparency, color); Transparenta si culoare. Parametrii: zoomImg.attachBitmap(zoomBitmap, 5); Ataseaza "zoomBitmap" in movie "zoomImg": attachBitmap(bitmapData, depth); var magPower = 2; Puterea maririi var zoomMtx = new flash.geom.Matrix(); Matrix obiect pentru scara si desenarea imaginii marite zoomMtx.scale(magPower, magPower); Seteaza parametrii scarii in interiorul matrix in "magPower"; imaginea inca nu va fi scarizata, trebuie sa o desenam folosind matrix scale(_x scale, _y scale); magGlass.swapDepths(_root.getNextHighestDepth()); Pozitionam lupa deasupra _root.onEnterFrame = function() { magGlass._x = _xmouse - 70; magGlass._y = _ymouse - 70; Ascundem mouse si setam coordonatele magGlass egale cu coordonatele mousului zoomImg._x = magGlass._x; zoomImg._y = magGlass._y; imgMask._x = magGlass._x; imgMask._y = magGlass._y; Setam pozitii pentru cealalta parte zoomMtx.tx = -_xmouse * magPower; zoomMtx.ty = -_ymouse * magPower; Variabile "tx" si "ty" din matrix raspund de pozitii regiunii de desenare in imagine; setam aceste variabile in asa fel incat imaginea marita sa fie in centrul lupei/lentilei zoomBitmap.draw(imgHolder, zoomMtx); } Desenam imaginea marita in zoomBitmap, folosind functia draw(): draw(source, matrix) Sursa: flashcomponents.net |
| html-link catre acest articol | |
| BB-cod pentru publicarea in bloguri | |
| Link direct catre acest articol |
| 7-11-2009, 01:42, |
Stimate vizitator, nu sunteti inregistrat in site. Va recomandam sa folositi autentificare sau inregistrare in site.
Info
Vizitatori din grupul Oaspeti, nu pot comenta acest articol.





orice info sau modul

