| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Dec 2008
Beiträge: 6
| onMetaData in OOP
Hallo zusammen! Ich versuche gerade, einen Klasse für die Steuerung von Videos zu schreiben. Dabei soll eine Fortschrittsanzeige eingebaut sein, für die ich natürlich die Gesamtdauer des Videos haben muss. Dies kann man mit netstream.onMetaData auslesen, so viel weiss ich. Jetzt stellt mich das in der Klasse vor einige Probleme...ich kann die Metadaten zwar auslesen, aber nicht abspeichern: Code: class classes.VideoController
{
var videoObj:Video;
var netConnection:NetConnection;
var netStream:NetStream;
var videoDuration:Number;
function VideoController(videoObject:Video){
videoObj = videoObject;
netConnection = new NetConnection();
netConnection.connect(null);
netStream = new NetStream(netConnection);
netStream.onMetaData = function(infoObj:Object){
videoDuration = infoObj["duration"];
trace("Gesamtdauer: "+videoDuration);
}
videoObj.attachVideo(netStream);
netStream.setBufferTime(5);
} |
| | |
| | #2 (permalink) |
| experience++; Registriert seit: Jul 2002 Ort: Düsseldorf
Beiträge: 11.347
|
hi, wo steht denn dein anderes trace das undefined ausgibt? hört sich ein bissal nach einem timing prob an... evtl fragst du die var ab bevor onMetaData die var überhaupt setzen konnte?! cheers, sal
__________________
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme! |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Dec 2008
Beiträge: 6
|
hier noch die gesamte Klasse bisher... Code: class classes.VideoController{
var videoObj:Video;
var netConnection:NetConnection;
var netStream:NetStream;
var videoDuration:Number;
function VideoController(videoObject:Video){
videoObj = videoObject;
netConnection = new NetConnection();
netConnection.connect(null);
netStream = new NetStream(netConnection);
netStream.onMetaData = function(infoObj:Object){
videoDuration = infoObj["duration"];
trace("Gesamtdauer: "+videoDuration);
}
statusAbfrage();
videoObj.attachVideo(netStream);
netStream.setBufferTime(5);
}
public function playVideo(videoPath:String){
trace("videoPath: "+videoPath);
netStream.play(videoPath);
}
private function statusAbfrage(){
trace("Gesamtdauer ausserhalb: "+videoDuration);
}
} |
| | |
| | #4 (permalink) |
| experience++; Registriert seit: Jul 2002 Ort: Düsseldorf
Beiträge: 11.347
|
pack doch playVideo() und statusAbfrage() mit in die onMetaData function rein... also die function aufrufe, nicht die functions/methoden selbst ![]() cheers, sal
__________________
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme! Geändert von salazar (22-12-2008 um 12:08 Uhr) |
| | |
| | #6 (permalink) | ||
| experience++; Registriert seit: Jul 2002 Ort: Düsseldorf
Beiträge: 11.347
| Zitat:
![]() dann kannste das aber umgehen indem du den scope in einer var abspeicherst. dann kennt der auch deine functions ![]() Zitat:
cheers, sal
__________________
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme! | ||
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Dec 2008
Beiträge: 6
|
Damit habe ich noch so meine Probleme...wie kann ich den Scope in einer Variable abspeichern? Für solche Probleme habe ich bisher Delegate verwendet, aber das hilft leider nicht überall weiter... Das mit dem Denkfehler ist richtig, primär gings mir erstmal darum die duration zu bekommen, aber natürlech darf das dann nicht im Kontruktor sein...ich hab das jetzt in die playVideo Funktion verschoben. |
| | |
| | #8 (permalink) |
| experience++; Registriert seit: Jul 2002 Ort: Düsseldorf
Beiträge: 11.347
|
so sollte das klappen mit dem scope. als bsp.: PHP-Code:
__________________
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme! Geändert von salazar (22-12-2008 um 12:33 Uhr) |
| | |
| | #9 (permalink) |
| Neuer User Registriert seit: Dec 2008
Beiträge: 6
|
das will nicht so recht... Code: class classes.VideoController
{
var videoObj:Video;
var netConnection:NetConnection;
var netStream:NetStream;
var videoDuration:Number;
var scope:Object;
function VideoController(videoObject:Video)
{
trace(this);
scope = this;
videoObj = videoObject;
netConnection = new NetConnection();
netConnection.connect(null);
netStream = new NetStream(netConnection);
videoObj.attachVideo(netStream);
netStream.setBufferTime(5);
}
public function playVideo(videoPath:String){
trace("videoPath: "+videoPath);
netStream.play(videoPath);
netStream.onMetaData = function(infoObj:Object){
scope.videoDuration = infoObj["duration"];
trace("videoduration: "+scope.videoDuration);
scope.statusAbfrage(infoObj["duration"]);
//trace("Gesamtdauer: "+videoDuration);
}
}
private function statusAbfrage(duration:Number){
trace("Gesamtdauer ausserhalb: "+duration);
}
} |
| | |
| | #10 (permalink) |
| experience++; Registriert seit: Jul 2002 Ort: Düsseldorf
Beiträge: 11.347
|
ja nee. jetzt ist das ganze nach deinem umbau auch an der falschen stelle! ![]() PHP-Code:
__________________
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme! |
| | |
| | #12 (permalink) |
| experience++; Registriert seit: Jul 2002 Ort: Düsseldorf
Beiträge: 11.347
|
na bitte, geht doch ![]() viel spaß noch, cheers, sal
__________________
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme! |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |