Accedi per seguire   
Seguaci 0
masch

Webcam

2 messaggi in questa discussione

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

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Benvenuto/a!
:) Ciao e Benvenuto/a nel forum, anti.

Perché non personalizzi la tua presenza in WinInizio aggiungendo una firma e un'immagine al tuo profilo personale ? se non sai come fare, clicca qui.

Se sei una ragazza e vuoi essere aggiunta al gruppo delle WinGirls non dovrai fare altro che presentarti in questo thread o contattare un membro dello staff; se invece hai meno di 18 anni potresti far parte degli Juniores, per farlo presentati qui o contatta un membro dello staff.

Il gruppo WinGirls e Juniores offrono alcuni vantaggi speciali, scoprili nell'apposito thread di presentazione!

Ricordati, infine, che un titolo appropriato per dare visibilità alle tue nuove discussioni è essenziale: chiamare una discussione "Aiuto" o "Consiglio" non permette di capire subito la tua richiesta e rende più difficili le ricerche per gli altri utenti.

Link utili:

- Regolamento
- Netiquette
- Glossario
- Thread di Benvenuto
- Guida all'uso di WinInizio

Mi spiace non poter esserti di molto aiuto... sicuramente qualche utente più esperto di me in questo settore ti risponderà al più presto :P

:P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un utente registrato per partecipare

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!


Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.


Accedi Ora
Accedi per seguire   
Seguaci 0