Detectați intrușii utilizând obiectul de cameră în Flash CS4

Creșterea tehnologiilor Flash Video și Web 2.0 în ultimii ani a determinat, de asemenea, o creștere a utilizării video ca instrument de comunicare. Împreună cu această conștientizare a crescut, de asemenea, a fost o creștere corespunzătoare a utilizării de web cams, care sunt fie hard cablate în calculator sau vândute ca add-on-uri separate.

În acest tutorial vă voi arăta, în primul rând, cum să hrăniți un semnal web cam în Flash și, în al doilea rând, cum să intrați în legătură cu spionul dvs. intern și să folosiți camera web pentru a detecta intrușii.




Intrus icoana de Kyle Carrozza. No-Good Nicky apare ocazional în weekend-urile "Frog Raccoon Strawberry" la dummcomics.com.

Înainte de a începe

Există o avertizare: Acest tutorial se va juca la nivel local sau într-o pagină web. Acesta nu va acoperi modul de difuzare a conținutului pe care îl vedeți altora pe web. Pentru a vă difuza efectiv feed-ul dvs. - tu și mătușa Phoebe fluturându-vă unul pe celălalt în oceane - trebuie să utilizați un Flash Media Server 3.5 și prietenii mei sunt departe de a face acest lucru.

Pasul 1: Deschideți Flash CS4 Professional

Creați un document nou. Când documentul se deschide, redenumiți layerul 1 în "Camera" și adăugați un nou strat numit "acțiuni". Blocați stratul de acțiuni.

Pasul 2: Adăugați un obiect video

Faceți clic pe fila Bibliotecă și selectați Video nou ... din opțiunile Bibliotecii. Când se deschide caseta de dialog Proprietăți video, asigurați-vă că aceasta este Video (controlat cu Actionscript) este selectată și faceți clic pe OK. Veți vedea o mică cameră video în bibliotecă. Acesta este Obiectul Video.

Pasul 3: Trageți obiectul video în scenă

Cu obiectul video selectat, faceți clic pe fila proprietăți și modificați proprietățile Lățime și înălțime la 320 și 240. Dați obiectului selectat numele instanței lui vidObj.

Pasul 4: Acțiuni

Faceți clic o dată pe primul cadru al stratului de acțiuni și deschideți editorul Script selectând Fereastră> Acțiuni sau apăsând tastele F9 (PC) sau Option-F9 (Mac).

Pasul 5: Cod

 Var myCam: Camera = Camera.getCamera (); vidObj.attachCamera (myCam);

Dacă nu ați mai făcut acest lucru înainte, hai să trecem prin cod.

Prima linie oferă camerei web un nume variabil și, folosind clasa Camera, spune Flash să vâneze aparatul foto atașat la computer. Am doar camera iSight din MacBook Pro care lucrează departe, motiv pentru care nu există nici o valoare în getCamera () metodei metodei. Dacă aș avea două camere, să zicem o cameră web Logitech conectată la computer și am vrut să o folosesc în loc de iSight pe care l-aș introduce getCamera ( "1"). Rețineți că camerele sunt șiruri de caractere, nu nume. Ele sunt adăugate în ordine index, mai degrabă decât în ​​ordine alfanumerică.

A doua linie atașează pur și simplu feedul video de la camera web la obiectul video de pe scenă. De asemenea, este important să știți când attachCamera () metoda este utilizată în timpul rulării, utilizatorul va fi invitat, de către Flash Player, să permită utilizarea camerei.

Pasul 6: Testați filmul.

Acolo te duci, doar două rânduri de Actionscript și acum ești o stea de film.

Dacă nu vedeți nimic, cotele sunt practic de 100% pe care le-ați atașat mai multe camere la computer și Flash a ales cel greșit. Iată cum puteți remedia acest lucru:

Pasul 7: Setări

Deschideți meniul contextual al SWF și selectați Setări. Faceți clic dreapta (PC) sau ctrl-clic (Mac) pe obiectul din swf pentru a deschide meniul contextual al swf. Selectați Setări pentru a deschide caseta de dialog Setări Flash Player.

Pasul 8: Pictograma aparatului foto

Faceți clic pe pictograma aparatului foto din setările Flash Player. Veți primi o listă de camere atașate la computer. Selectați camera și faceți clic pe butonul Închidere.

Pasul 9: Capturarea mișcării utilizând Obiectul aparatului foto

În acest exemplu, împrumutat din cartea mea Fundația Flash Video CS3 de către friendsofEd, suntem, așa cum am spus mai devreme, "mergând în contact cu spionul nostru interior". Deși web-urile sunt folosite în mod obișnuit pentru "difuzare", există o metodă în clasa Camera - setMotionLevel - care poate fi folosit pentru a porni camera atunci când "detectează" un anumit grad de mișcare și apoi să filmeze și să afișeze o imagine din acea captare. Acesta este felul în care acele infamuri "Nanny Cams" funcționează.

Ca bonus suplimentar, nu vom folosi un obiect video, vom lăsa ActionScript să se ocupe de ridicarea acestuia. Iată cum:

Pasul 10: Document nou

Deschideți un nou document Flash și setați dimensiunea stadiului la 665 de pixeli lățime și 450 de pixeli înălțime.

Pasul 11: Primul cadru

Selectați primul cadru al filmului și deschideți panoul Acțiuni.

Pasul 12: Bitmap și BitmapData

Introduceți următorul ActionScript:

 import flash.display.Bitmap; import flash.display.BitmapData;

Pentru a începe acest proiect, vom avea nevoie de un mijloc de afișare a imaginilor capturate de camera Web în partea de jos a scenei. Aceste două clase - Bitmap și BitmapData - fac acest lucru posibil.

Pasul 13: Servicii de menaj

Apăsați de două ori tasta Return / Enter și adăugați următorul cod:

 Var myBitmaps: Array = Array nou (); var myBitmapData: Array = Array nou (); pentru (var i: Number = 0; i < 4; i++) myBitmapData[i] = new BitmapData(320,240,false,0x00333333) myBitmaps[i] = new Bitmap(myBitmapData[i]); myBitmaps[i].x = 5 + 165 * i; myBitmaps[i].y = 315; myBitmaps[i].scaleX = 0.5; myBitmaps[i].scaleY = 0.5; addChild(myBitmaps[i]); 

După ce ați sunat în clasele Bitmap și BitmapData, le-ați pus acum la lucru.

Acest bloc de cod "housekeeping" creează cele patru obiecte Bitmap și BitmapData utilizate pentru a afișa imaginile capturate în partea de jos a scenei. Blocul începe prin crearea unei liste care va fi utilizată pentru a stoca imaginile și culorile lor de fundal.

Acest proces este sarcina pentru buclă în a treia linie. În limba engleză simplă, acesta stabilește pur și simplu numărul de imagini care pot fi afișate sub alimentarea camerei la 4.

Următoarea linie creează casetele care dețin cele 4 imagini și asigură că acestea au o dimensiune de 320x240 pixeli, încât acestea nu sunt transparente - fals - și că fiecare cutie este umplută cu o culoare gri închis.

Restul de șase linii plasează imaginile capturate pe fundaluri gri și scindează fiecare pentru a se potrivi. Ultima linie - addChild (myBitmaps [i]); - este modul în care imaginile vor rămâne blocate pe scenă.

Pasul 14: Counter

Apăsați de două ori tasta Return / Enter și adăugați următoarea linie de ActionScript:

 var bitmapCounter: int = 0;

Dacă există o mare mișcare, aparatul foto va face o mulțime de imagini care vor fi afișate. Acest contor asigură că numai patru imagini vor fi vizibile în orice moment.

Pasul 15: Ia-o de lucru

Apăsați de două ori tasta Return / Enter și introduceți următorul bloc de cod:

 Var myCam: Camera = Camera.getCamera (); myCam.setMotionLevel (70,50); var myVideo: Video = nou videoclip (); myVideo.attachCamera (MyCAM); myVideo.x = 172; myVideo.y = 10; addChild (MyVideo);

Acest bloc de coduri face ca camera web să funcționeze. Începe cu identificarea camerei pe care este folosită getCamera () metodă. Următoarea linie de cod este locul unde se petrece "magia" în acest exercițiu.

Clasa Camera conține o metodă setMotionLevel care necesită doar doi parametri. Primul parametru este cât de mult trebuie să fie detectată mișcarea (Flash solicită acest eveniment "Activitate") înainte de apariția camerei. Valorile de aici pot fi orice între 0 și 100. Gândiți-vă la acest număr ca fiind un detector de mișcare extrem de sensibil. Cu cât este mai mare valoarea adăugată, trebuie detectată mai multă mișcare pentru a fotografia imaginea. Dacă cineva fură mere de la mărul tău, o valoare de 0 ar funcționa, pentru că într-adevăr nu se întâmplă prea multe. Dacă locuiți pe o stradă rezidențială și vecinii rup în sus și în jos pe străzi în mașinile lor sportive, un nivel de 80 sau 90 ar fi suficient pentru a capta o imagine pe care o puteți arăta poliției.

Al doilea parametru, deși opțional, specifică câte milisecunde de nimic nu trebuie să se întâmple înainte ca Flash să se plictisească și spune camerei să stea în picioare. Valoarea implicită este 2000 milisecunde (2 secunde). În acest exemplu am apelat sensibilitatea utilizând o valoare de 50 de milisecunde.

Cele patru linii finale creează un obiect video "virtual" numit videoul meu și prinde camera în el. Acest obiect este plasat pe 172 de pixeli de-a lungul axei x și este la același nivel cu partea superioară a treptei. Ultima linie face obiectul, numit Sprite, pe scenă. Pentru cei de la noi, "Sprites", gândiți-vă la ei ca pe o movieclips fără o cronologie.

Pasul 16: Detectarea

Apăsați de două ori tasta Return / Enter și adăugați acest bloc de cod final:

 myCam.addEventListener (ActivityEvent.ACTIVITY, motionHandler); funcția motionHandler (evt: Object): void myBitmapData [bitmapCounter] .draw (myVideo); bitmapCounter ++; dacă (bitmapCounter == 4) bitmapCounter = 0; 

Acest bloc de cod negru spune Flash ce să facă atunci când alarma se stinge și mișcarea este detectată. În acest caz, Flash Player a detectat un ActivityEvent bazat pe setMotionLevel parametrii. După ce a detectat evenimentul, acesta a dat foc motionHandler funcţie.

motionHandler funcția indică Flash pentru a realiza o apucare a cadrelor și pentru ao lipi în partea inferioară a scenei. dacă declarația vă asigură că numai 4 imagini sunt afișate la un moment dat.

Pasul 17: Înfășurați-l

Salvați și testați filmul.

Concluzie:

În acest tutorial ați descoperit că lumea Flash Video nu se limitează la lucrurile pe care le filmați cu un recorder sau pe YouTube. De asemenea, vă permite să utilizați o cameră web.

Primul exemplu ne-a arătat cum sunt necesare doar două rânduri de cod pentru a "intra în joc".

Cel de-al doilea exemplu a folosit o cameră web pentru a crea o "cameră de tip Nanny" bazată pe mișcarea detectată de camera web. Odată ce această mișcare este detectată, mișcarea este capturată și o imagine din captura este creată și afișată în partea de jos a scenei. Alt aspect interesant al acestui exemplu a fost faptul că întregul proiect a fost condus de ActionScript. Nu exista nimic în bibliotecă, iar fișierele Flash nu consta din nimic mai mult decât câteva linii de cod de bază.

Sper că ți-a plăcut să urmezi!

Cod