La montée en puissance de Flash Video et du Web 2.0 au cours des dernières années a également entraîné une augmentation de l'utilisation de la vidéo comme outil de communication. Parallèlement à cette prise de conscience accrue, il y a eu également une augmentation correspondante de l'utilisation de caméras Web câblées dans l'ordinateur ou vendues séparément..
Dans ce tutoriel, je vais vous montrer, d'une part, comment introduire un signal de webcam dans Flash et, d'autre part, comment entrer en contact avec votre espion intérieur et utiliser votre webcam pour détecter les intrus..
Icône d'intrusion de Kyle Carrozza. No-Good Nicky apparaît occasionnellement dans les weekends de "Grenouille Raccoon Strawberry" sur dummcomics.com.
Il y a une mise en garde: ce tutoriel jouera localement ou dans une page Web. Il ne couvrira pas la manière de diffuser le contenu que vous voyez à d’autres sur le Web. Pour diffuser réellement votre flux - vous et votre tante Phoebe nous saluant à travers les océans - vous devez utiliser Flash Media Server 3.5. Cela, mes amis, est vraiment hors de propos..
Créer un nouveau document. Lorsque le document s'ouvre, renommez le calque 1 en "Caméra" et ajoutez un nouveau calque nommé "actions". Verrouiller le calque actions.
Cliquez sur l'onglet Bibliothèque et sélectionnez Nouveau vidéo… dans les options de la bibliothèque, Lorsque la boîte de dialogue Propriétés de la vidéo s'ouvre, assurez-vous que Vidéo (Actionscript - contrôlée) est sélectionné et cliquez sur OK. Vous verrez une petite caméra vidéo apparaître dans votre bibliothèque. Ceci est l'objet vidéo.
Avec l'objet vidéo sélectionné, cliquez sur l'onglet Propriétés et modifiez les propriétés Largeur et Hauteur en 320 et 240. Donnez à l'objet sélectionné le nom d'instance de vidObj.
Cliquez une fois sur la première image du calque actions et ouvrez l'éditeur de script en sélectionnant Fenêtre> Actions ou en appuyant sur les touches F9 (PC) ou Option-F9 (Mac)..
var myCam: Camera = Camera.getCamera (); vidObj.attachCamera (myCam);
Si vous n'avez jamais fait cela auparavant, passons en revue le code.
La première ligne attribue un nom de variable à votre webcam et, à l'aide de la classe Caméra, indique à Flash de rechercher la caméra connectée à votre ordinateur. La caméra iSight de mon MacBook Pro n’est plus opérationnelle, c’est pourquoi il n’ya aucune valeur dans la getCamera () paramètre de la méthode. Si je devais avoir deux caméras, disons une webcam Logitech, connectée à l'ordinateur et que je voulais utiliser au lieu de l'iSight que j'entrerais getCamera ("1"). Notez que les caméras sont des chaînes et non des noms. Ils sont ajoutés dans l'ordre des index plutôt que dans l'ordre alphanumérique.
La deuxième ligne attache simplement le flux vidéo de la webcam à l'objet vidéo sur la scène. Il est également important que vous sachiez quand le attachCamera () méthode est utilisée à l'exécution, le lecteur Flash demandera à l'utilisateur d'autoriser l'utilisation de la caméra.
Voilà, seulement deux lignes d'ActionScript et vous êtes maintenant une star de cinéma.
Si vous ne voyez rien, il y a pratiquement 100% de chances que plusieurs caméras soient connectées à votre ordinateur et que Flash ait choisi la mauvaise. Voici comment résoudre ce problème:
Ouvrez le menu contextuel du swf et sélectionnez Paramètres. Cliquez avec le bouton droit de la souris (PC) ou en maintenant la touche Ctrl (Mac) enfoncée sur l'objet dans le fichier swf pour ouvrir le menu contextuel de celui-ci. Sélectionnez Réglages ouvrir la boîte de dialogue Paramètres de Flash Player.
Cliquez sur l'icône de l'appareil photo dans les paramètres de Flash Player. Une liste de caméras connectées à votre ordinateur vous sera présentée. Sélectionnez la caméra et cliquez sur le bouton Fermer.
Dans cet exemple, emprunté à mon livre Foundation Flash Video CS3 par friends of Edd, nous allons, comme je l'ai dit plus tôt, "entrer en contact avec notre espion intérieur". Bien que les webcams soient communément utilisées à des fins de "diffusion", il existe une méthode dans la classe Camera - setMotionLevel - cela peut être utilisé pour allumer l'appareil photo lorsqu'il "détecte" un certain degré de mouvement, puis pour prendre et afficher une image à partir de cette capture. C’est un peu comment fonctionnent ces fameux "Nanny Cams".
En prime, nous n'utiliserons pas d'objet vidéo, nous allons laisser ActionScript se charger de la tâche. Voici comment:
Ouvrez un nouveau document Flash et définissez la dimension de la scène sur 665 pixels de large et 450 pixels de haut..
Sélectionnez la première image du film et ouvrez le panneau Actions..
Entrez le code ActionScript suivant:
import flash.display.Bitmap; import flash.display.BitmapData;
Pour démarrer ce projet, nous aurons besoin d’un moyen d’afficher les images capturées par la webcam au bas de la scène. Ces deux classes - Bitmap et BitmapData - rendent cela possible.
Appuyez deux fois sur la touche Retour / Entrée et ajoutez le code suivant:
var myBitmaps: Array = new Array (); var myBitmapData: Array = new Array (); pour (var i: nombre = 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]);
Après avoir appelé les classes Bitmap et BitmapData, vous les mettez maintenant au travail.
Ce bloc de code "interne" crée les quatre objets Bitmap et BitmapData utilisés pour afficher les images capturées au bas de la scène. Le bloc commence par créer une liste qui sera utilisée pour stocker les images et leurs couleurs d'arrière-plan..
Ce processus est la tâche du pour boucle dans la troisième ligne. En clair, il définit simplement le nombre d'images pouvant être affichées sous le flux de la caméra sur 4.
La ligne suivante crée les boîtes qui contiennent ces 4 images et s'assure qu'elles ont une taille de 320x240 pixels et qu'elles ne sont pas transparentes. - faux - et que chaque case est remplie d'une couleur gris foncé.
Les six lignes restantes placent les images capturées sur les fonds gris et les redimensionnent en conséquence. La dernière ligne - addChild (myBitmaps [i]); - est la façon dont les images vont rester bloquées sur la scène.
Appuyez deux fois sur la touche Retour / Entrée et ajoutez la ligne ActionScript suivante:
var bitmapCounter: int = 0;
S'il y a beaucoup de mouvement, la caméra prendra beaucoup d'images qu'il faudra afficher. Ce compteur garantit que seules quatre images seront visibles à la fois..
Appuyez deux fois sur la touche Retour / Entrée et entrez le bloc de code suivant:
var myCam: Camera = Camera.getCamera (); myCam.setMotionLevel (70,50); var myVideo: Video = new Video (); myVideo.attachCamera (myCam); myVideo.x = 172; myVideo.y = 10; addChild (myVideo);
Ce bloc de code permet à la caméra Web de fonctionner. Il commence par identifier quelle caméra est utilisée à travers le getCamera () méthode. La prochaine ligne de code est celle où se passe la "magie" de cet exercice.
La classe Camera contient une méthode setMotionLevel qui ne nécessite que deux paramètres. Le premier paramètre est la quantité de mouvement à détecter (Flash appelle cela un événement "Activité") avant le déclenchement de la caméra. Les valeurs ici peuvent être comprises entre 0 et 100. Considérez ce nombre comme un détecteur de mouvement extrêmement sensible. Plus la valeur ajoutée est élevée, plus il faut détecter de mouvement pour prendre une photo. Si quelqu'un vole des pommes de votre pommier, une valeur de 0 fonctionnerait, car il ne se passait pas grand-chose. Si vous vivez dans une rue résidentielle et que les voisins grouillent dans leurs voitures de sport, un niveau de 80 ou 90 suffirait pour capturer une image que vous pouvez montrer à la police.
Le deuxième paramètre, bien que facultatif, spécifie combien de millisecondes il ne doit rien se passer avant que Flash ne s'ennuie et ordonne à l'appareil photo de s'éteindre. La valeur par défaut est 2 000 millisecondes (2 secondes). Dans cet exemple, nous avons sélectionné la sensibilité en utilisant une valeur de 50 millisecondes..
Les quatre dernières lignes créent un objet vidéo "virtuel" nommé Mon vidéo et branche la caméra en elle. Cet objet est placé à 172 pixels le long de l'axe des x et affleure le haut de la scène. La dernière ligne place l'objet, appelé Sprite, sur la scène. Pour ceux qui découvrent "Sprites", imaginez-les comme des MovieClips sans calendrier.
Appuyez deux fois sur la touche Retour / Entrée et ajoutez ce dernier bloc de code:
myCam.addEventListener (ActivityEvent.ACTIVITY, motionHandler); function motionHandler (evt: Object): void myBitmapData [bitmapCounter] .draw (myVideo); bitmapCounter ++; if (bitmapCounter == 4) bitmapCounter = 0;
Ce bloc de code noir indique à Flash quoi faire lorsque l'alarme se déclenche et qu'un mouvement est détecté. Dans ce cas, Flash Player a détecté une erreur ActivitéEvent basé sur le setMotionLevel paramètres. Ayant détecté cet événement, il déclenche la motionHandler une fonction.
le motionHandler fonction indique à Flash de saisir une image et de la coller au bas de la scène. le si déclaration s'assure que seulement 4 images sont affichées à la fois.
Sauvegarder et tester le film.
Dans ce didacticiel, vous avez découvert que le monde de Flash Video ne se limite pas à filmer avec un enregistreur ni à youTube. Il vous permet également d'utiliser une webcam.
Le premier exemple montre comment il ne faut que deux lignes de code pour "entrer dans le jeu".
Le deuxième exemple utilisait une webcam pour créer une "Nanny Cam" basée sur le mouvement détecté par la webcam. Une fois que ce mouvement est détecté, le mouvement est capturé et une image de cette capture est créée et affichée au bas de la scène. L'autre aspect intéressant de cet exemple est le fait que tout le projet était dirigé par ActionScript. Il n'y avait rien dans la bibliothèque et les fichiers Flash étaient composés de quelques lignes de code de base..
J'espère que vous avez aimé suivre!