Actionscript 3 找不到定义fl.video.FLVPlayback
我被难住了。我有两个我正在创作的flash文件 文件A有一个MovieClip on stage,它链接到我导入fl.video.FLVPlayback的类 文件B还尝试导入fl.video.FLVPlayback 文件B抛出编译时错误,无法找到fl.video.FLVPlayback的定义。我注意到我的FlashDevelop也没有为该行提供语法突出显示 两者都是为同一版本的FlashPlayer(10)导出的。这两个文件都是在同一个平台、同一个软件(CS4)上编写的。我没有弄乱任何发布设置,只是文件B与文档类关联 令人感兴趣的是,文件A最终将加载到文件B中,加载到文件B的上下文中 怎么了?我甚至不知道从哪里开始找Actionscript 3 找不到定义fl.video.FLVPlayback,actionscript-3,class,import,definition,Actionscript 3,Class,Import,Definition,我被难住了。我有两个我正在创作的flash文件 文件A有一个MovieClip on stage,它链接到我导入fl.video.FLVPlayback的类 文件B还尝试导入fl.video.FLVPlayback 文件B抛出编译时错误,无法找到fl.video.FLVPlayback的定义。我注意到我的FlashDevelop也没有为该行提供语法突出显示 两者都是为同一版本的FlashPlayer(10)导出的。这两个文件都是在同一个平台、同一个软件(CS4)上编写的。我没有弄乱任何发布设置,
提前感谢。如果您没有使用FLVPlayback组件(从组件库拖到舞台上),则Flash无法访问fl软件包进行开箱即用的发布 您必须在类路径中包含组件源文件夹或.swc(源文件夹将位于as3发布设置的“源路径”选项卡中,.swc位于“库路径”选项卡中),才能使类正常工作 源文件夹是: C:\ProgramFiles(x86)\Adobe\Adobe Flash CS4\Common\Configuration\Component Source\ActionScript 3.0\FLVPlayback .swc位于以下目录中: C:\ProgramFiles(x86)\Adobe\Adobe Flash CS4\Common\Configuration\Components\Video
swc可能更容易包含,因为如果愿意,您可以将.swc直接复制并粘贴到项目文件夹中。您需要确保库中存在FLVPlayback组件,并导出用于ActionScript(应为默认设置) 要将其添加到库中,只需打开组件面板(窗口->组件),展开名为视频的组,然后在库中拖动FLVPlayback。没有必要把它放在舞台上 默认情况下,应将其导出为“fl.video.FLVPlayback”
干杯基于Sapptime的回答,我想补充一点,您可以在“发布设置”下创建不同的配置文件 因此,您可以通过导入.swc文件创建包含FLVPlayback组件的概要文件,并在需要使用FLVPlayer时使用该概要文件。向项目中添加大约100KB 这样,您就不需要在库或舞台上使用FLVPlayback组件。相反,您可以像导入项目中的任何其他类一样导入FLVPlayback类,并在actionscript代码中创建FLVPlayback实例
//import:
import fl.video.FLVPlayback;
//Instantiate:
private var player:FLVPlayback = new FLVPlayback();
我已经添加了一个Videoplayer.as类(因为我找不到附加它的方法),我为一个项目制作了一个视频播放器,并快速地将其剥离,以获得一些额外的内容,但它应该可以工作:)请随意使用它,修改它或获得一些灵感
将Videoplayer.as放在项目的src文件夹中,并创建一个新实例。使用设置器来控制它
//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();
这是视频播放器课程
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;
}
}
}
文件B扩展到哪一类?太棒了。我喜欢SWC方法,只是不知道视频组件中存在这样的文件。我认为它们对于所有组件都存在,正如上面列出的路径所示。谢谢你的回答!仍然相关。swc方法是我问题的完美解决方案。