Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 找不到定义fl.video.FLVPlayback_Actionscript 3_Class_Import_Definition - Fatal编程技术网

Actionscript 3 找不到定义fl.video.FLVPlayback

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)上编写的。我没有弄乱任何发布设置,

我被难住了。我有两个我正在创作的flash文件

文件A有一个MovieClip on stage,它链接到我导入fl.video.FLVPlayback的类 文件B还尝试导入fl.video.FLVPlayback

文件B抛出编译时错误,无法找到fl.video.FLVPlayback的定义。我注意到我的FlashDevelop也没有为该行提供语法突出显示

两者都是为同一版本的FlashPlayer(10)导出的。这两个文件都是在同一个平台、同一个软件(CS4)上编写的。我没有弄乱任何发布设置,只是文件B与文档类关联

令人感兴趣的是,文件A最终将加载到文件B中,加载到文件B的上下文中

怎么了?我甚至不知道从哪里开始找


提前感谢。

如果您没有使用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方法是我问题的完美解决方案。