Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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 Can';t将变量移到函数外_Actionscript 3 - Fatal编程技术网

Actionscript 3 Can';t将变量移到函数外

Actionscript 3 Can';t将变量移到函数外,actionscript-3,Actionscript 3,您好,这是我的“播放视频”功能。每当我试图将变量移到函数之外以控制来自其他地方的视频(例如“vid”),特定的movieclips和按钮就会消失(不会在舞台上显示)。这是某种错误还是我做错了什么?谢谢 这样做: function playvideo(path:String, wid:Number=1280, heigt:Number=720):void { var nc:NetConnection = new NetConnection(); nc.connect(null);

您好,这是我的“播放视频”功能。每当我试图将变量移到函数之外以控制来自其他地方的视频(例如“vid”),特定的movieclips和按钮就会消失(不会在舞台上显示)。这是某种错误还是我做错了什么?谢谢

这样做:

function playvideo(path:String, wid:Number=1280, heigt:Number=720):void
{
    var nc:NetConnection = new NetConnection();
    nc.connect(null);
    var ns:NetStream = new NetStream(nc);
    ns.client = this;
    ns.addEventListener(NetStatusEvent.NET_STATUS, statusChanged);
    ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
    SoundMixer.stopAll();
    var vid:Video = new Video(); 
    ns.play(path);
    vid.width = wid;
    vid.height = heigt;
    vid.attachNetStream(ns);
    mc_bg.removeChildAt(0);
    mc_bg.addChild(vid);
}

对于任何var,同样要声明外部函数

您需要理解的术语是“范围”。变量和函数只能在声明它们的括号内访问。我想你可能不理解我的问题:我正在创建的赛车游戏有一个由该函数显示的视频背景。当我把这个变量放在函数中时,movieclip显示了你在比赛后得到了多少钱,但是当我像你一样把这个变量放在函数外时,movieclip就消失了。我需要清除那个变量或类似的东西吗?谢谢您使用的是类吗?是AS3吗?调用函数时是否尝试调试var?是的,是AS3,但我不使用任何类,只使用一个框架中的脚本。它们是必要的吗?试图跟踪var,它只给了我“[对象视频]”。然后你得到了函数外部的变量,不是吗?不是,因为如果我把它移到函数外部,下一帧的movieclips不会显示,只是黑屏。
var vid:Video = new Video(); 
function playvideo(path:String, wid:Number=1280, heigt:Number=720):void
{
    var nc:NetConnection = new NetConnection();
    nc.connect(null);
    var ns:NetStream = new NetStream(nc);
    ns.client = this;
    ns.addEventListener(NetStatusEvent.NET_STATUS, statusChanged);
    ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
    SoundMixer.stopAll();

    ns.play(path);
    vid.width = wid;
    vid.height = heigt;
    vid.attachNetStream(ns);
    mc_bg.removeChildAt(0);
    mc_bg.addChild(vid);
}