Flash AS3-用函数参数的名称声明变量
我的flash AS3文件中有一个函数。我想在调用此函数时传递一个参数,并使该参数成为我声明的新FLV播放组件的名称Flash AS3-用函数参数的名称声明变量,flash,actionscript-3,function,variables,Flash,Actionscript 3,Function,Variables,我的flash AS3文件中有一个函数。我想在调用此函数时传递一个参数,并使该参数成为我声明的新FLV播放组件的名称 function newVideo(myVideoName){ var [myVideoName]:FLVPlayback = new FLVPlayback(); } -- 编辑-我现在有以下代码。如何将FLV播放组件添加到舞台 > function newVideo(myVideoName:String):FLVPlayback { > >
function newVideo(myVideoName){
var [myVideoName]:FLVPlayback = new FLVPlayback();
}
--
编辑-我现在有以下代码。如何将FLV播放组件添加到舞台
> function newVideo(myVideoName:String):FLVPlayback {
>
> var flvP:FLVPlayback = new FLVPlayback();
> flvP.name = myVideoName;
flvP.source = "argentinaTrailer.f4v";
> return flvP;
}
>
> var myPlayer:FLVPlayback = newVideo('player1');
你在这里做的事是不允许的。使用字符串引用(
this['someObject']
)创建和访问对象的符号不允许强制转换类型。此外,如果不使用标识符符号,则无法使用该名称直接访问以这种方式创建的对象:
this['foo']:Object = {}; // fails, 1078: Label must be a simple identifier.
this['foo'] = {}; // works
及
因此,要使函数正常工作,应该编写以下代码:
function newVideo(myVideoName:String):void
{
this[myVideoName] = new FLVPlayback();
}
但只有这样,您才能使用相同的字符串引用访问播放机,如下所示:
this[myVideoName].play();
function newVideo(myVideoName:String):FLVPlayback
{
var flvP:FLVPlayback = new FLVPlayback();
flvP.name = myVideoName;
return flvP;
}
var myPlayer:FLVPlayback = newVideo('player1');
addChild(myPlayer);
此外,上述任何一项都没有为FLVPlayback组件的实例命名。它所做的是定义对FLVPlayback的引用的名称。如果要创建实例名为myVideoName
的FLVPlayback,则应创建如下函数:
this[myVideoName].play();
function newVideo(myVideoName:String):FLVPlayback
{
var flvP:FLVPlayback = new FLVPlayback();
flvP.name = myVideoName;
return flvP;
}
var myPlayer:FLVPlayback = newVideo('player1');
addChild(myPlayer);
这样做的目的是创建FLVPlayback组件的新实例,为其指定实例名,并返回对其的引用。您可以这样使用它:
this[myVideoName].play();
function newVideo(myVideoName:String):FLVPlayback
{
var flvP:FLVPlayback = new FLVPlayback();
flvP.name = myVideoName;
return flvP;
}
var myPlayer:FLVPlayback = newVideo('player1');
addChild(myPlayer);
谢谢你,这很有道理。但是,我以前使用addChild将FLVPlayback组件添加到stage中。你能解释一下我将如何把它合并到你的函数中,因为它似乎不起作用?我很乐意用更多的信息编辑答案,但你能解释一下“不起作用”是什么意思吗?嗨,Shane,我用我现在的代码编辑了我的问题,感谢你的回答。我已经设置了一个源参数-我现在如何将FLV播放组件添加到舞台上?@user469453-我已经更新了我的答案,如果这对你不起作用,我需要你得到的错误类型的一些细节。嗨,Shane-这真的很有帮助。非常感谢-这将为我节省大量时间和代码:)