| | #1 (Permalink) |
| Neuer User Registriert seit: Oct 2009 Ort: Österreich
Beiträge: 9
| Video Transparenzen zu einem bestimmten Zeitpunkt ermitteln
Hey Leute! Ich hab da eine recht knifflige Problemstellung für mein kleines Spiel (im Zuge des Semsterprojekts und meiner Bakk-Arbeit). Spielkonzept: Unterwasserwelt, in der Fische schwimmen, die abgeschossen werden sollen. Wir legen aber Wert darauf, dass die Fische nur dann als getroffen gelten, wenn auch wirklich nur die farbigen Pixel des Objekts getroffen wurden (transparenter Hintergrund, der aufgrund der Boundingbox ebenfalls mit Click gezählt wird, soll mithilfe eines Algorithmus ausgeschlossen werden). Jetzt wirds etwas komplizierter: Wir gestalten die Animationen der Objekte (Fische) in AfterEffects CS4 und müssen diese aus AFX nach Flash importieren - geht, indem man als .flv mit Transparenzen rendert. Jetzt habe ich bisher herausgefunden, dass ich Videodateien sehr gut mittels Klasse "Video" und einem NetConnection und einem NetStrem importieren kann (sehe das aber nicht als elegante Lösung..), brauche aber die Bildinformation zu einem bestimmten Zeitpunkt (Zeitpunkt, als draufgeclickt wurde) um die Transparenz-Information zu kontrollieren! Geht das überhaupt? Wenn nein, wie kann ich das zum Laufen bringen? Wenn jemand bessere Ideen und Vorschläge dazu hat, wie ich die Information aus AfterEffects nach Flash bringen kann und es nachher einfacher habe, auf die Bildinformation zuzugreifen - nur zu, ich lerne gern! Ich freue mich über alle Antworten, am allermeisten über hilfreiche, zögert bitte nicht, Verständnisfragen zu meiner Problemstellung zu äußern, ich gebe mir dann Mühe, es verständlicher zu erklären. Liebe Grüße, Natascha |
| | |
| | #3 (Permalink) |
| hmmm Registriert seit: Dec 2003
Beiträge: 150
|
hast du schonmal probiert, das ganze zum jeweiligen zeitpunkt per "draw" in ein bitmapdata zu zeichnen. ich hab keine ahnung, wie es sich da bei videos mit den transparenzen verhällt aber sollte er die transparenzen mitnehmen kannst du dann per getPixel32 den farbwert inkl. entsprechendem alphawert rauslesen.
|
| | |
| | #4 (Permalink) | ||
| Neuer User Registriert seit: Oct 2009 Ort: Österreich
Beiträge: 9
| Zitat:
![]() Zitat:
Und AFX CS4 kann auch PNG-Sequenzen exportieren.
Geändert von Taesch (18-10-2009 um 13:48 Uhr) | ||
| | |
| | #5 (Permalink) |
| hmmm Registriert seit: Dec 2003
Beiträge: 150
|
das videos mit transparenzen gehen ist mir schon klar ![]() du sollst ja nicht alles zu jedem zeitpunkt zeichnen. du hast viele videoobjekte, so wie ich es verstanden habe. nach einem klick weisst du ja schonmal, welches objekt angeklickt wurde. und dann das jeweilige videoobjekt mit bitmapdata.draw(video) zeichnen. anschließend den pixel an der jeweiligen position überprüfen. |
| | |
| | #6 (Permalink) | |
| Neuer User Registriert seit: Oct 2009 Ort: Österreich
Beiträge: 9
|
Von Adobe LiveDocs Zitat:
| |
| | |
| | #9 (Permalink) |
| Neuer User Registriert seit: Mar 2002
Beiträge: 109
|
hoi, also den Pixel wo du klickst kannst du doch kopieren und die Farbinformation abfragen. Wenn es nicht geht liegt es eventuell daran das du das Video per Streaming Server bekommst und dieser VSA (Video Sampling Access) nicht erlaubt. Grüsse |
| | |
| | #10 (Permalink) |
| Neuer User Registriert seit: Oct 2009 Ort: Österreich
Beiträge: 9
|
Wenn ich die Farbinformation des Pixels abfrage, hilft mir das nicht viel weiter - weil mit einem transparenten Pixel an der Stelle des Videos würd ich ja trotzdem die Farbe von darunter sehen oder verstehe ich die Funktion falsch?
|
| | |
| | #11 (Permalink) |
| lebt in stereo Registriert seit: Mar 2008 Ort: karlsruhe
Beiträge: 991
|
naja, pixelinformationen beinhalten neben der farbe (0x000000) auch noch die alpha-transparenz (0x00000000). die kannst du ermitteln und/oder sogar einfach den channel der bitmapdata kopieren und als maske benutzen oder löschen.
|
| | |
| | #12 (Permalink) |
| Neuer User Registriert seit: Oct 2009 Ort: Österreich
Beiträge: 9
|
BitmapData.draw(video) ergibt folgende Fehler Hab ich was falsch gemacht, oder funktioniert es so nicht?Code: // Objekt, welches Video beinhaltet, lädt ein Video per NetStream var video:Video = new Video(); video.name = "video"; background.addChild(video); Code: // clicked-Handler
var tmp:BitmapData = new BitmapData(100,100);
tmp.draw( Video(getChildByName("Video")) );
var alpha:int = tmp.getPixel32(event.localX,event.localY);
Code: ArgumentError: Error #2005: Parameter 0 ist nicht vom richtigen Typ. Er sollte vom Typ IBitmapDrawable sein. at flash.display::BitmapData/draw() at actionscript.classes::GameObject/ Sofern ich nicht das Video zeichne (weil nicht IBitmapDrawable), sondern den Container (background:MovieClip) Code: tmp.draw( background); Geändert von Taesch (19-10-2009 um 12:03 Uhr) |
| | |
| | #14 (Permalink) | ||
| Neuer User Registriert seit: Oct 2009 Ort: Österreich
Beiträge: 9
| Zitat:
![]() Zitat:
Geändert von Taesch (19-10-2009 um 12:34 Uhr) | ||
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Steuerung von Sounds per AS zu einem genauen Zeitpunkt im Video | snk | ActionScript 2 | 0 | 20-05-2009 16:20 |
| Freunde bestrafen mit Flash, PHP. Zufallszahl zu einem Bestimmten Zeitpunkt on Screen | ermuraten | Flash MX | 14 | 13-01-2007 19:16 |
| flash film zu einem bestimmten zeitpunkt laden | nina_ | Flash MX 2004 | 8 | 13-09-2005 15:22 |
| Bild einfügen ab einem bestimmten Zeitpunkt | The Regulator | Flash MX 2004 | 2 | 22-04-2004 16:47 |
| loop zu einem bestimmten zeitpunkt abspielen | bnetz | Softwarearchitektur und Entwurfsmuster | 2 | 06-12-2003 17:07 |