|
gius
Nuovo Utente
Stato:
Sconnesso
| |
Spedito - 02/07/2009 : 12:49:35
|
Salve a tutti, ho iniziato da pochissimo con Flash 8 e stavo sperimentando un tutorial sul controllo con la webcam del movimento, praticamente una sfera va da sinistra a destra e desidererei che al movimento scomparisse, con il manuale di ActionScript mi è parso questo il sistema migliore: delete ball_mc
e lo inserito
var root:MovieClip = this; // // 1. Get your webcam on the screen // var video_vobj:Video; var cam:Camera = Camera.get(); video_vobj.attachVideo(cam); // // 2. the activityLevel property // this.onEnterFrame = function() { var actLevel:Number = cam.activityLevel; root.act_txt.text = "activity level = "+actLevel; }; cam.onActivity = function(isActive:Boolean) { }; // // 3. The BitmapData class // import flash.display.BitmapData;
var screenS = new BitmapData(cam.width, cam.height);
snap1_btn.onRelease = function() { screenS.draw(video_vobj); root.attachBitmap(screenS, 1); };
var videoX:Number = video_vobj._x; var videoY:Number = video_vobj._y; var videoW:Number = video_vobj._width; var videoH:Number = video_vobj._height;
snap2_btn.onRelease = function() { screenS.draw(video_vobj); var holder:MovieClip = root.createEmptyMovieClip("holder", 1); holder.attachBitmap(screenS, 1); holder._x = videoX; holder._y = videoY; holder._width = videoW; holder._height = videoH; };
release_btn.onRelease = function() { root.holder.removeMovieClip() }; // // 4. Hit detection : Setup // var speed:Number = 2; function moveBall() { ball_mc._x += speed; if (ball_mc._x>(videoX+30+videoW)) { ball_mc._x = videoX-30; ball_mc._y = videoY+random(videoH-60)+30; } } ball_mc.onEnterFrame = moveBall; // // 5. Hit detection // var sizeDif:Number = videoW/cam.width;
var now = new BitmapData(cam.width, cam.height); var before = new BitmapData(cam.width, cam.height);
function hitDetect() {
var ballX:Number = (ball_mc._x-videoX)/sizeDif var ballY:Number = (ball_mc._y-videoY)/sizeDif
now.draw(video_vobj)
var valNow:Number = (now.getPixel(ballX, ballY) >> 16 & 0xFF); var valBefore:Number = (before.getPixel(ballX, ballY) >> 16 & 0xFF);
if (valNow>valBefore+30 || valNow<valBefore-30) {
************ delete ball_mc //(trace "hit") if (ball_mc._currentframe == 1) ball_mc.gotoAndPlay(2) }
before.draw(video_vobj) }
var intervalID:Number = setInterval(hitDetect, 20);
ma non funziona, qualcuno mi può aiutare a capire cosa sbaglio?
grazie
|
|
Invii: 1 ~
Membro da: 02/07/2009 ~
UltimaVisita: 08/07/2009
|
-> Moderatore
|
|
|
|
|
|
|