2011-08-10 49 views
3

我難倒。我有兩個正在創作的Flash文件。定義fl.video.FLVPlayback找不到

文件A在舞臺上有一個MovieClip,它與我在其中導入fl.video.FLVPlayback 的類有關聯。文件B也嘗試導入fl.video.FLVPlayback。

文件B拋出一個編譯時錯誤,它無法找到用於fl.video.FLVPlayback的定義。我注意到我的FlashDevelop也沒有爲該行提供語法突出顯示。

兩者都爲出口相同版本的FlashPlayer(10)。兩者都是在同一個平臺上編寫的,同一個軟件(CS4)。我沒有將任何發佈設置搞砸,除了文件B與文檔類相關聯。

的利息,可以是文件最終將被裝載到文件B,進入文件B.

到底是怎麼回事的情況下?我不知道哪裏可以開始尋找。

在此先感謝。

+0

的文件B伸出什麼課? – kreek

+0

它延伸MovieClip –

回答

10

如果你不使用FLVPlayback組件(從組件庫拖動到舞臺),則Flash無法訪問到FL包出去出版盒子。

您必須在類路徑中包含組件源文件夾或.swc(源文件夾將位於as3發佈設置的「源路徑」選項卡中,位於「庫路徑」選項卡中的.swc中)爲了你的班級工作。

源文件夾是: C:\ Program Files文件(x86)的\的Adobe \的Adobe Flash CS4 \ COMMON \配置\組件源\的ActionScript 3.0 \的FLVPlayback

的是名爲.swc在目錄: C:\ Program Files文件(x86)的\的Adobe \的Adobe Flash CS4 \ COMMON \配置\組件\視頻

深港西部通道是可能更容易儘量提供您可以直接複製並粘貼到名爲.swc項目文件夾如果你喜歡。

+0

血腥輝煌。我喜歡SWC方法,只是不知道視頻組件存在這樣的文件。我想他們對所有組件都存在,正如你上面列出的路徑似乎表明的那樣。謝謝回答! –

+0

乾杯 - 祝你好運:) – sapptime

+0

仍然相關。 swc方法是解決我的問題的完美方案。 – Mytheral

2

您需要確保FLVPlayback組件存在於您的庫中,併爲ActionScript(它應該是默認設置)導出。

將其添加到庫中,只要打開組件面板(窗口 - >組件)並展開命名視頻組和庫中的拖動的FLVPlayback。不需要把它放在舞臺上。

它應該默認導出爲「fl.video.FLVPlayback」。

乾杯

3

大廈Sapptime的答案,我想補充一點,你可以創建在發佈設置不同的配置文件。

這樣就可以使個人資料,其中包括通過導入FLVPlayback組件。swc文件並在需要使用FLVPlayer時使用該配置文件。爲項目增加約100 KB。

這樣,您不需要在圖書館或舞臺上使用FLVPlayback組件。相反,您可以像項目中的任何其他類一樣導入FLVPlayback類,並在您的actionscript代碼中創建FLVPlayback的實例。

//import: 
import fl.video.FLVPlayback; 

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

我添加了一個Videoplayer.as類(因爲我無法找到一種方法,其附加)我的一個項目做出剝離,並能夠快速和骯髒的一些額外的內容,但它應該工作:)隨意使用它,修改它或獲得一些靈感。

將Videoplayer.as放到項目的src文件夾中,並創建一個新的實例。使用setters來控制它。

//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(); 

,這裏是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; 
    } 
} 
}