2011-08-10 1 views
3

Je suis perplexe. J'ai deux fichiers flash que je suis en train de créer.Définition fl.video.FLVPlayback introuvable

Le fichier A a un MovieClip sur scène qui a un lien avec une classe dans laquelle j'importe fl.video.FLVPlayback Le fichier B tente également d'importer fl.video.FLVPlayback.

Le fichier B génère une erreur COMPILE TIME indiquant qu'il ne trouve pas la définition de fl.video.FLVPlayback. Je remarque que FlashDevelop ne propose pas non plus de coloration syntaxique pour cette ligne.

Les deux exportent pour la même version de FlashPlayer (10). Les deux sont en cours de création sur la même plate-forme, le même logiciel (CS4). Je n'ai pas modifié les paramètres de publication, sauf que le fichier B est associé à une classe de document.

d'intérêt peut être que Un fichier sera finalement chargé dans le fichier B, dans le contexte du fichier B.

Qu'est-ce que vous? Je n'ai aucune idée où même commencer à regarder.

Merci d'avance.

+0

Quelle classe étend B File? – kreek

+0

Il étend MovieClip –

Répondre

10

Si vous n'utilisez pas le composant FLVPlayback (déplacé de la bibliothèque de composants sur la scène), Flash n'a pas accès au package fl pour la publication.

Vous devez inclure le dossier source du composant ou .swc sur votre chemin d'accès aux classes (le dossier source irait dans l'onglet "Chemin d'accès source" de vos paramètres de publication as3, .swc dans l'onglet "Chemin de la bibliothèque"). commandez pour que votre classe travaille.

Le dossier source est: C: \ Program Files (x86) \ Adobe \ Adobe Flash CS4 \ Common \ Configuration \ Component Source \ ActionScript 3.0 \ FLVPlayback

Le SWC est dans le répertoire: C: \ Program Files (x86) \ Adobe \ Adobe flash CS4 \ Common \ Configuration \ Components \ Video

le SWC est probablement plus facile d'inclure que vous pouvez copier et coller le SWC directement dans votre dossier de projet si tu veux.

+0

Bloody brillant. J'aime l'approche SWC, je n'avais aucune idée qu'un tel fichier existait pour les composants vidéo. Je suppose qu'ils existent pour tous les composants, comme le chemin que vous avez indiqué ci-dessus semble indiquer. Merci de répondre! –

+0

Salutations - bonne chance :) – sapptime

+0

Encore pertinent. L'approche SWC était une solution parfaite à mon problème. – Mytheral

2

Vous devez vous assurer que le composant FLVPlayback est présent dans votre bibliothèque et exportés pour ActionScript (qui devrait être le réglage par défaut).

Pour ajouter à la bibliothèque, il suffit d'ouvrir les Composants du panneau (Fenêtre -> Composants) et développez le groupe nommé Vidéo et faites glisser FLVPlayback dans votre bibliothèque. Pas besoin de le mettre sur scène.

Il devrait être exporté par défaut comme "fl.video.FLVPlayback".

Vive

3

Miser sur la réponse de Sapptime, je voudrais ajouter que vous pouvez créer différents profils sous Paramètres de publication.

Vous pouvez donc créer un profil incluant le composant FLVPlayback en important le fichier.fichier swc et utilisez ce profil lorsque vous avez besoin de travailler avec le FLVPlayer. Ajoute environ 100 Ko au projet. De cette façon, vous n'avez pas besoin d'un composant FLVPlayback dans votre bibliothèque ou sur votre scène. Au lieu de cela, vous pouvez importer la classe FLVPlayback comme n'importe quelle autre classe de votre projet et créer des instances de FLVPlayback dans votre code ActionScript.

//import: 
import fl.video.FLVPlayback; 

//Instantiate: 
private var player:FLVPlayback = new FLVPlayback(); 

J'ai ajouté une classe Videoplayer.as (parce que je ne peux pas trouver un moyen de le joindre) j'ai fait pour un projet et dépouillé rapide et sale pour un contenu supplémentaire, mais il devrait fonctionner :) N'hésitez pas à l'utiliser tel quel, à le modifier ou à vous inspirer.

Mettez Videoplayer.as dans le dossier src de votre projet et créez une nouvelle instance de celui-ci. Utilisez les setters pour le contrôler.

//Instantiate 
var MyPLayer:Videoplayer = new Videoplayer(); 

//Use setters 
MyPLayer.SetVideopath = path to flv file; 
MyPLayer.SetVideoAutoplay = true; // or false 
//... and so on 

// add to displaylist 
this.addChild(MyPlayer); 

// Load video 
MyPlayer.Load(); 

// start playing 
MyPlayer.Play(); 

et est ici la classe Videoplayer ...

package { 
import fl.video.*; 
import flash.events.*; 
import flash.display.Sprite; 
import flash.display.Shape; 

public class Videoplayer extends Sprite { 

    // VIDEO 
    private var player:FLVPlayback = new FLVPlayback(); 
    private static var videoPath:String=""; 
    private var w:Number = 1280; 
    private var h:Number = 720; 
    private var vol:Number = 0; 
    private var autoplay:Boolean = false; 
    private var autorewind:Boolean = false; 
    private var Loop:Boolean = false; 
    private var bgcolor:uint = 0x000000; 
    private var HasError:Boolean=false; 
    private var playerid:Number; 
    private var SeekSecToStop:Number=0; 
    private var BufferTime:Number=0; 

    private var videoBG:Shape; 

    // =============================================================================================== 
    // CONSTRUCTOR 
    // =============================================================================================== 
    public function Videoplayer() { 
     super(); 

     trace("Videoplayer"); 

     this.addChild(player); 

     player.addEventListener(VideoEvent.STATE_CHANGE, VidState, false, 0, true); 
     player.addEventListener(VideoEvent.READY, VidReady, false, 0, true); 
     player.addEventListener(VideoEvent.AUTO_REWOUND, VidRewinded, false, 0, true); 
     player.addEventListener(VideoEvent.STOPPED_STATE_ENTERED, VidStopped, false,0,true); 

    } 

    // =============================================================================================== 
    // SET VIDEO PROPS 
    // =============================================================================================== 
    private function setVidProps():void { 
     player.name = "player"; 
     player.skinBackgroundColor = getVideoBGcolor; 
     player.skinBackgroundAlpha = 0; 
     player.registrationX = 0; 
     player.registrationY = 0; 
     player.setSize(getVideoWidth,getVideoHeight); 
     player.scaleMode = "maintainAspectRatio"; // exactFit, noScale, maintainAspectRatio 
     //player.fullScreenTakeOver = false; 
     player.isLive = false; 
     player.bufferTime = BufferTime; 
     player.autoRewind = getVideoAutorewind; 

     player.volume = vol; 

    } 

    // =============================================================================================== 
    // LOAD 
    // =============================================================================================== 
    public function Load():void { 
     trace("Load"); 
     setVidProps(); 
     player.source = getVideopath; 
    } 

    // =============================================================================================== 
    // PLAY 
    // =============================================================================================== 
    public function Play():void { 
     player.playWhenEnoughDownloaded(); 
     UnMute(); 
    } 

    public function Pause():void { 
     player.pause(); 
    } 

    public function Stop():void { 
     //player.seek(SeekSecToStop); 
     player.stop(); 
     //player.pause(); 
    } 

    public function SeekAndStop():void { 
     player.seek(SeekSecToStop); 
     player.pause(); 
    } 

    public function SeekAndPlay(n:Number=0):void { 
     player.seek(n); 
     Play(); 
    } 

    public function Fullscreen():void { 
     //player.fullScreenTakeOver = true; 
     //player 
    } 

    public function Mute():void { 
     player.volume = 0; 
    } 

    public function UnMute():void { 
     player.volume = 1; 
    } 

    public function Volume(n:Number):void { 
     player.volume=n; 
    } 

    // =============================================================================================== 
    // VidReady 
    // =============================================================================================== 
    private function VidReady(e:Event):void { 
     trace("VidReady"); 
     //player.removeEventListener(VideoEvent.READY, VidReady); 
     player.fullScreenTakeOver = false; 
     if (autoplay) { 
      player.autoPlay = autoplay; 
      Play(); 
     } else { 
      player.play(); 
      SeekAndStop(); 
     } 
     dispatchEvent(new VideoEvent(VideoEvent.READY)); 
    } 

    // =============================================================================================== 
    // VidStopped 
    // =============================================================================================== 
    private function VidStopped(e:Event):void { 
     trace("VidStopped"); 
     //dispatchEvent(new VideoEvent(VideoEvent.STOPPED)); 
     if(Loop) { 
      //SeekAndPlay(); 
      Play(); 
     } else { 
      dispatchEvent(new VideoEvent(VideoEvent.STOPPED_STATE_ENTERED)); 
     } 
    } 

    // =============================================================================================== 
    // VidRewinded 
    // =============================================================================================== 
    private function VidRewinded(e:Event):void { 
     trace("VidRewinded"); 
    } 

    // =============================================================================================== 
    // VidState 
    // =============================================================================================== 
    private function VidState(e:Event):void { 

     var flvPlayer:FLVPlayback = e.currentTarget as FLVPlayback; 

     //Log("VideoState 1 : "+flvPlayer.state); 

     if (flvPlayer.state==VideoState.CONNECTION_ERROR) { 
      trace("FLVPlayer Connection Error! -> path : "+flvPlayer.source); 
      //dispatchEvent(new VideoEvent(VideoEvent.CONNECTION_ERROR)); 
      HasError=true; 
      //CleanUp(); 
     } else if (flvPlayer.state==VideoState.BUFFERING) { 
      trace("BUFFERING"); 
     } else if (flvPlayer.state==VideoState.DISCONNECTED) { 
      trace("DISCONNECTED"); 
     } else if (flvPlayer.state==VideoState.LOADING) { 
      trace("LOADING"); 
     } else if (flvPlayer.state==VideoState.PAUSED) { 
      trace("PAUSED"); 
     } else if (flvPlayer.state==VideoState.RESIZING) { 
      trace("RESIZING"); 
     } else if (flvPlayer.state==VideoState.REWINDING) { 
      trace("REWINDING"); 
     } else if (flvPlayer.state==VideoState.SEEKING) { 
      trace("SEEKING"); 
     } else if (flvPlayer.state==VideoState.PLAYING) { 
      trace("PLAYING"); 
     } else if (flvPlayer.state==VideoState.STOPPED) { 
      trace("STOPPED"); 
      //flvPlayer.pause(); 
     } else if (flvPlayer.state==VideoState.RESIZING) { 
      trace("RESIZING"); 
     } 
    } 

    // =============================================================================================== 
    // SETTERS & GETTERS 
    // =============================================================================================== 
    public function set SetPlayerId(n:Number):void { 
     playerid=n; 
    } 
    public function get getPlayerId():Number { 
     return playerid; 
    } 
    public function set SetSeekSecToStop(n:Number):void { 
     SeekSecToStop=n; 
    } 
    public function get getSeekSecToStop():Number { 
     return SeekSecToStop; 
    } 
    public function set SetVideoLoop(b:Boolean):void { 
     Loop = b; 
    } 
    public function get getVideoLoop():Boolean { 
     return Loop; 
    }  
    public function set SetVideoAutorewind(b:Boolean):void { 
     autorewind = b; 
    } 
    public function get getVideoAutorewind():Boolean { 
     return autorewind; 
    } 
    public function set SetVideoAutoplay(b:Boolean):void { 
     autoplay = b; 
    } 
    public function get getVideoAutoplay():Boolean { 
     return autoplay; 
    } 
    public function set SetVideopath(s:String):void { 
     videoPath = s; 
    } 
    public function get getVideopath():String { 
     return videoPath; 
    } 
    public function set SetVideoWidth(n:Number):void { 
     w = n; 
    } 
    public function get getVideoWidth():Number { 
     return w; 
    } 
    public function set SetVideoHeight(n:Number):void { 
     h = n; 
    } 
    public function get getVideoHeight():Number { 
     return h; 
    } 
    public function set SetVideoBGcolor(n:uint):void { 
     bgcolor = n; 
    } 
    public function get getVideoBGcolor():uint { 
     return bgcolor; 
    } 
    public function get getPlayerState():String { 
     return player.state; 
    } 
    public function get GetHasError():Boolean { 
     return HasError; 
    } 
} 
} 
Questions connexes