{lang: 'de'}
Flashhilfe.de - Flash Community

Ladebalken/Abspielposition bleiben unverändert [Flash 10]

 


AntwortenRegistrieren Seite1  

mod23#1
Benutzerbild von mod23
Beiträge: 7
Registriert: Jul 2011

18.07.2011, 15:41

Hallo,

ich bin gerade dabei einen MovieClip-Player nach Vorbild der Anleitung von Lee Brimelow (www.gotoandlearn.com) zu entwickeln. Er hat die ganze Theorie zum Player in ActionScript (AS) 2 verfasst. Ich habe mir jedoch vorgenommen, dies in AS 3 zu tun. Ich versuche gerade die Video-Position auf der Zeitleiste mit Hilfe eines Regler-Buttons anzuzeigen. Mein Problem ist, dass sich der Regler nicht bewegt. Ich habe versucht, die aktuelle Position auf der Zeitleiste des Videos wiederzugeben (also mit trace()), ergibt mir jedoch 'NaN' aus. Wie kann ich die aktuelle Abspielposition des Videos auf die Variable videoDuration übertragen? Ich habe die FLA-Datei (CS 5) angehängt. Beim Debuggen erscheint die Meldung:

Versuch, zu starten und Verbindung zu Player mit URL C:UsersAdminDesktopMoviePlayer.swf herzustellen
[SWF] C:UsersAdminDesktopMoviePlayer.swf - 16575 Byte nach Dekomprimierung
TypeError: Error #1010: Ein Begriff ist nicht definiert und hat keine Eigenschaften.
   at MoviePlayer_fla::MainTimeline/videoStatus()[MoviePlayer_fla.MainTimeline::frame1:43]
   at flash.utils::Timer/_timerDispatch()
   at flash.utils::Timer/tick()

Der Quelltext:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.events.MouseEvent;
import flash.media.SoundTransform;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.display.Sprite;

var amountLoaded:Number;
var connection:NetConnection;
var customClient:Object=new Object();
var loadbarWidth:Number;
var loadbarTimer:Timer;
var loadbarTimerDelay:Number;
var stream:NetStream;
var videoDuration:Number;
var videoURL:String='1.flv';

connection=new NetConnection();
connection.connect(null);
customClient.onMetaData = metaDataHandler;
stream=new NetStream(connection);
stream.client=customClient; 
theVideo.attachNetStream(stream);
stream.play(videoURL);
stream.pause();

PlayStopButton.addEventListener(MouseEvent.CLICK,streamPause);

loadbarWidth=333.25;
loadbarTimerDelay=100;
loadbarTimer=new Timer(loadbarTimerDelay);
loadbarTimer.addEventListener(TimerEvent.TIMER,videoStatus);
loadbarTimer.start();

function streamPause(event:MouseEvent):void {
     stream.togglePause();
}

function videoStatus(event:TimerEvent):void {
     amountLoaded=stream.bytesLoaded/stream.bytesTotal;
     loader.loadbar.width=amountLoaded*loadbarWidth;
     loader.ScrubberButton.x=stream.time/videoDuration*loadbarWidth;
}

function metaDataHandler(infoObject:Object):void {
     deepTrace(infoObject);
     videoDuration=infoObject.duration;
     trace(videoDuration);
}

function deepTrace( obj : *, level : int = 0 ) : void{
          var tabs : String = "";
          for ( var i : int = 0 ; i < level ; i++, tabs += "\t" );
         
          for ( var prop : String in obj ){
              trace( tabs + "[" + prop + "] -> " + obj[ prop ] );
              deepTrace( obj[ prop ], level + 1 );
          }
      }

Damit ist die Variable videoDuration gemeint. Das Problem liegt sich beim metaDataHandler ??

Gruß, mod23

Angehängte Dateien:
Adobe Flash Quelldatei MoviePlayer.fla14.81 KB
Schlagwörter: Videoposition, Zeitleiste
Geändert von mod23 am 18.07.11 um 16:01 Uhr
ashitaka#2
Benutzerbild von ashitaka
Beiträge: 161
Registriert: Apr 2010

18.07.2011, 21:13