Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash CS4 Professional

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-07-2010, 18:36   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 229
webcam snapshot

hm.. fortgeschritten oder anfänger...!? keine ahnung.
zumindest nicht gaaanz üblich..

kurz und knapp:
kennt jemand den befehl/das vorgehen um einen snapshot mit der wegcam zu schießen? dieser soll dann natürlich auch noch auf der bühne platziert werden.

die webcam ansprechen und so weiter kann ich ohne probleme. müsste eben nur wissen, wie ich den snapshot mache. hat da jemand einen hinweis für mich?
danke
Flashnism ist offline   Mit Zitat antworten
Alt 12-07-2010, 23:51   #2 (permalink)
Neuer User
 
Benutzerbild von andrelehnert
 
Registriert seit: Oct 2007
Ort: Kölle
Beiträge: 1.231
Hier - macht ein snapshot bei Klick aufs Video.
snapshots kann man dann drag´n´droppen.

PHP-Code:
import flash.display.Bitmap;
import flash.display.BitmapData;
//______________________________________________________________Camera
var cam0:Camera Camera.getCamera("0");
cam0.setMode(640,480,15);
//______________________________________________________________Video
var vid0:Video = new Video();
vid0.attachCamera(cam0);
//______________________________________________________________VideoContainer
var videoCont0=new Sprite();
videoCont0.addChild(vid0);
videoCont0.addEventListener(MouseEvent.CLICK,videoClickHandler)
addChild(videoCont0);
//______________________________________________________________videoClickHandler
function videoClickHandler(e:MouseEvent){    
    
makeSnapShot(e.target)
};    
//______________________________________________________________snapShot
function makeSnapShot(src){
    var 
myBitmapData:BitmapData = new BitmapData(src.widthsrc.height);
    var 
bmp:Bitmap = new Bitmap(myBitmapData);
    
myBitmapData.draw(src);
    var 
spr=new Sprite();
    
spr.addChild(bmp);
    
addChild(spr);
    
spr.x=src.width;    
    
spr.addEventListener(MouseEvent.MOUSE_DOWN,bmpDragStart);
    
spr.addEventListener(MouseEvent.MOUSE_UP,bmpDragStop);        
};
//______________________________________________________________dragFunctions
function bmpDragStart(e){
    
e.target.startDrag();
};
function 
bmpDragStop(e){
    
e.target.stopDrag();
}; 

LG ANdré
__________________
Die Hoffnung stirbt zuletzt.
Aber sie stirbt.
andrelehnert ist offline   Mit Zitat antworten
Alt 13-07-2010, 03:57   #3 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 229
hey danke.
hab es jetzt hinbekommen, dass der snapshot gemacht und platziert wird.

um einen effekt der zeitversetzung zu erzeugen wollte ich nun bei jedem enterFrame einen snapshot machen und den von 10 snapshot vorher aber in genau diesem moment anzeigen lassen (soweit klar?).

das klappt auch. allerding bekomme ich ab ca snapshot nr 700 folgende fehlermeldung:
ArgumentError: Error #2015: Ungültiges BitmapData.
at flash.display::BitmapData()
at Lochkamera4_fla::MainTimeline/takephoto()

vorneweg funktionierts ja aber noch.

hast du vielleicht oder irgendjemand eine idee, warum die BitmapData auf einmal ungültig sein soll? hat doch bis 700 auch geklappt.

kann flash nicht mehr als 700 Bitmaps aufnehmen?

PHP-Code:

stage
.addEventListener(Event.ENTER_FRAMEtakephoto); 

function 
takephoto(e:Event):void 
 
i++;
trace(i// bei 703 kommt der fehler

this['screenS'+i] = new BitmapData(video.widthvideo.height); 
this['screenS_image'+i] = new Bitmap(this['screenS'+i]);
this['screenS'+i].draw(video) ;
addChild(this['screenS_image'+(i-10)]) ;

removeChild(this['screenS_image'+(i-(11))]);







Geändert von Flashnism (13-07-2010 um 04:01 Uhr)
Flashnism ist offline   Mit Zitat antworten
Alt 13-07-2010, 04:20   #4 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 229
ok... wenn ich die auflösung von snapshot deutlich runterdrehe schafft er viel mehr. muss also wirklich am freigebenen speicher o.Ä. liegen...
hm... kann man das irgendwie noch weiter künstlich hochschrauben oder die sache ganz umgehen?
Flashnism ist offline   Mit Zitat antworten
Alt 13-07-2010, 07:58   #5 (permalink)
Neuer User
 
Benutzerbild von andrelehnert
 
Registriert seit: Oct 2007
Ort: Kölle
Beiträge: 1.231
Du kannst den Speicher der bereits aus der Displaylist entfernten Bitmaps wieder freigeben mit:

PHP-Code:
deinBMP.dispose(); 
Wenn Du es nämlich nur von der Stage removest, bleibt das BMP ansich ja trotzdem erhalten.
Alternativ könntest Du auch so arbeiten, das 11.BMP wieder zu überschreiben

LG ANdré
__________________
Die Hoffnung stirbt zuletzt.
Aber sie stirbt.
andrelehnert ist offline   Mit Zitat antworten
Alt 13-07-2010, 08:24   #6 (permalink)
in the boondocks
 
Benutzerbild von shin10
 
Registriert seit: Feb 2006
Ort: Augsburg
Beiträge: 3.498
hi,

wozu erstellst du denn auch immer ein neues bitmap? du brauchst doch nur das bitmapdata neu zeichnen lassen. z. b. so

PHP-Code:
import flash.display.Bitmap;
import flash.display.BitmapData;

var 
cache:Array = new Array();
const 
DELAY:uint 10;
for(var 
bild:uint 0bild DELAY-1bild++){
    
cache.push(new BitmapData(video.width,video.height));
}
var 
bmp:Bitmap = new Bitmap(new BitmapData(video.width,video.height));
addChild(bmp);

stage.addEventListener(Event.ENTER_FRAMEtakephoto);

var 
i:uint 0;
function 
takephoto(e:Event):void
{
    
i++;
    
trace(i);
    
cache.push(bmp.bitmapData);//bild in den cacheArray schieben
    
bmp.bitmapData cache.shift();//erstes bild aus dem cache holen
    
cache[cache.length-1].draw(video);//letztes bild im cache aktualisieren

ich hoffe mal, das löst dein problem

mfg

sx

edit://ah ja, war ich wieder zu langsam
__________________

flintfabrik.de

Geändert von shin10 (13-07-2010 um 08:25 Uhr)
shin10 ist offline   Mit Zitat antworten
Alt 13-07-2010, 11:35   #7 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 229
dispose();
scheint 1a zu funktionieren. super! 'kannt ich noch nicht.
danke vielmals!
Flashnism ist offline   Mit Zitat antworten
Alt 13-07-2010, 11:39   #8 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 229
@shin:

deine variante funktioniert allerdings auch tatellos.
wer die ewahl hat hat die qual.

aber dann werd ichs jetzt tatsächlich wohl so umbauen, dass ich mit dem array arbeite. ist dann auch sauberer. danke, danke, danke.
Flashnism ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Snapshot Webcam Muckina ActionScript 3 2 29-07-2008 15:20
Snapshot von Webcam deak Flash CS3 Professional 1 23-02-2008 18:47
JPG aus Webcam-Snapshot speichern bexus Flash Einsteiger 2 10-01-2008 07:45
Webcam Snapshot? mukraker ActionScript 3 3 18-06-2007 22:16
webcam-snapshot und fscommand lisalotte Flash Einsteiger 3 07-04-2006 13:31


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele