masch

Utenti
  • Numero contenuti

    1
  • Iscritto

  • Ultima visita

Su masch

  • Livello
    Iniziato
  1. 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 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