2012-03-24 3 views
0

j'ai problème dans la création d'un lecteur vidéo en flash via AS3, le problème est que chaque fois que je tente de compiler le projet, l'erreur du compilateur indique:1120: Accès des _stop de propriété non définie

1120: Access of undefined property _stop. 
1120: Access of undefined property _pause. 
1120: Access of undefined property _play. 
1180: Call to a possibly undefined method Button. 
1120: Access of undefined property _prev. 
1180: Call to a possibly undefined method Button. 
1120: Access of undefined property _next. 

Et ce continue à aller autant que j'ai mentionné ces objets, alors s'il vous plaît aidez-moi à résoudre ce problème. et je suis un débutant donc un peu difficile pour moi de trouver l'erreur.

AS3:

import flash.events.MouseEvent; 

var _xmlLoader  :URLLoader  = null; 

var _urlRequest  :URLRequest  = null; 

var _xml   :XML   = null; 

var _netConn  :NetConnection = null; 

var _netstr   :NetStream  = null; 

var _video   :Video   = null; 

var _currentVideoId :int   = 0; 

var _isPlaying  :Boolean  = false; 

var _soundTransform :SoundTransform = new SoundTransform(); 

var _volume   :int   = 1; 

var _duration  :Number   = 0; 

function Init():void 

{ 
    _urlRequest = new URLRequest("vids.xml"); 

    _xmlLoader = new URLLoader(); 
    _xmlLoader = new URLLoader(_urlRequest); 
    _xmlLoader.addEventListener(Event.COMPLETE, XMLLoaded, false, 0, true); 
} 

function XMLLoaded($e:Event):void 
{ 
    _xml = new XML($e.target.data); 
} 

function SetupVideo():void 
{ 
    _netConn = new NetConnection(); 
    _netConn.addEventListener(NetStatusEvent.NET_STATUS, OnStatusEvent, false, 0, true); 
    _netConn.connect(null); 

} 

function OnStatusEvent(stat:Object):void 
{ 
    trace(stat.info.code); 
    switch(stat.info.code) 
    { 
     case "NetConnection.Connect.Success": 
      SetupNetStream(); 
      break; 
     case "NetStream.Play.Stop": 
      _stop.enabled = false; 
      _pause.enabled = false; 
      _play.enabled = true; 
      _isPlaying = false; 
      _netstr.close(); 
      break; 
    } 
} 

function SetupNetStream():void 
{ 
    _netstr = new NetStream(_netConn); 
    _netstr.addEventListener(NetStatusEvent.NET_STATUS, OnStatusEvent, false, 0, true); 

    var $customClient = new Object(); 
    $customClient.onMetaData = onMetaData; 

    _netstr.client = $customClient 

    _video = new Video(500, 250); 
    _video.smoothing = true; 
    _video.y 
    _video.x = stage.stageWidth/2 - _video.width/2; 
    _video.attachNetStream(_netstr); 
    addChild(_video); 
} 

function onMetaData($info:Object):void 
{ 
    _duration = $info.duration; 
} 

function SetupButtons():void 
{ 
    _prev.addEventListener(MouseEvent.CLICK, PreviousVideo, false, 0, true); 
    _next.addEventListener(MouseEvent.CLICK,NextVideo,false,0,true); 
    _play.addEventListener(MouseEvent.CLICK, PlayVideo, false, 0, true); 
    _pause.addEventListener(MouseEvent.CLICK, PauseVideo, false, 0, true); 
    _stop.addEventListener(MouseEvent.CLICK, StopVideo, false, 0, true); 
    _sound.addEventListener(MouseEvent.CLICK, SoundVolume, false, 0, true); 

    _stop.enabled = false; 
    _pause.enabled = false; 
    _prev.enabled = false; 
    _next.enabled = false; 
} 

function PreviousVideo($e:MouseEvent):void 
{ 
    _currentVideoId -=1; 

    _stop.enabled = true; 
    _pause.enabled = true; 
    _play.enabled = false; 

    if(_currentVideoId < 0) 
    { 
     _currentVideoId = _xml.video.length()-1; 
    } 

    _videoName.text = _xml.video[_currentVideoId][email protected]; 
    _netstr.play(String(_xml.video[_currentVideoId][email protected])); 
} 

function NextVideo($e:MouseEvent):void 
{ 
    _currentVideoId +=1; 

    _stop.enabled = true; 
    _pause.enabled = true; 
    _play.enabled = false; 

    if(_currentVideoId == _xml.video.length()) 
    { 
     _currentVideoId = 0; 
    } 
    _videoName.text = _xml.video[_currentVideoId][email protected]; 
    _netstr.play(String(_xml.video[_currentVideoId][email protected])); 
} 

function PlayVideo($e:MouseEvent):void 
{ 
    _play.enabled= false; 
    _next.enabled = true; 
    _prev.enabled = true; 
    _stop.enabled= true; 
    _pause.enabled= true; 

    if(_isPlaying == false) 
    { 
     _isPlaying = true; 
     _netstr.play(String(_xml.video[_currentVideoId][email protected])); 
     _videoName.text = _xml.video[_currentVideoId][email protected]; 
     addEventListener(Event.ENTER_FRAME, Update, false, 0, true); 
    }else{ 
     _netstr.resume(); 
    } 
} 

function PauseVideo($e:MouseEvent):void 
{ 
    _play.enabled= true; 
    _pause.enabled= false; 
    _netstr.pause(); 
} 

function StopVideo($e:MouseEvent):void 
{ 
    _stop.enabled= false; 
    _pause.enabled= false; 
    _play.enabled= true; 

    _isPlaying = false; 
    removeEventListener(Event.ENTER_FRAME, Update); 
    _netstr.close(); 
} 

function Update($e:Event):void 
{ 
    _track.value = (_netstr.time/_duration) * _track.maximum; 
} 

function SoundVolume($e:MouseEvent):void 
{ 
    if(_volume == 1) 
    { 
     _volume = 0; 
     _sound.label = "Sound On"; 
    }else{ 
     _volume = 1; 
     _sound.label = "Sound Off"; 
    } 

    _soundTransform.volume = _volume; 
    _netstr.soundTransform = _soundTransform; 
} 

Init(); 
SetupVideo(); 
SetupButtons(); 

Et même j'ai converti ce objets à des symboles de bouton.

Répondre

1

probablement vous avez oublié d'attribuer un nom d'instance pour les objets qui utilisés comme _stop, _pause, boutons _play etc.

Et vérifier aussi le drapeau « Exporter pour ActionScript » dans les propriétés de la bibliothèque.

+0

Est-il important d'affecter des objets en tant que MovieClip? –

+0

Ofcourse n'est pas) Déjà corrigé – Arkady

+0

désolé arkady je ne vous ai pas .. vous me dites d'attribuer les objets ou les boutons comme movieclip..si alors je l'ai fait, mais n'a pas fonctionné non plus .. –

Questions connexes