Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.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 as3循环内的动态变量_Actionscript 3_Class_Loops_Dynamic_Variables - Fatal编程技术网

Actionscript 3 as3循环内的动态变量

Actionscript 3 as3循环内的动态变量,actionscript-3,class,loops,dynamic,variables,Actionscript 3,Class,Loops,Dynamic,Variables,我需要让screenPagevar可供以后调用。我正在动态创建几个页面。问题是当我调用screenPage.startDrag()时然后它只拖动最后一页。我如何在名称中添加一个变量,或者通过代码访问所有屏幕页面 以下是简短的代码: var screenPage:MovieClip; for(var p = 1; daTotalPages >= p; p++) { screenPage = new theFlagScreen(); } 我可以将屏幕页设置为动态变量,并在循环末尾添

我需要让
screenPage
var可供以后调用。我正在动态创建几个页面。问题是当我调用
screenPage.startDrag()时然后它只拖动最后一页。我如何在名称中添加一个变量,或者通过代码访问所有屏幕页面

以下是简短的代码:

var screenPage:MovieClip;

for(var p = 1; daTotalPages >= p; p++)
{
    screenPage = new theFlagScreen();
}
我可以将
屏幕页
设置为动态变量,并在循环末尾添加1,然后添加2等等吗?

为什么不使用数组

var pages:Array = new Array;

for(var p = 1; daTotalPages >= p; p++)
{
   var screenPage:MovieClip = new theFlagScreen();
   pages.push(screenPage)
}
现在您有了一个包含所有实例的数组

var myPage:MovieClip = pages[5] as MovieClip;
myPage.startDrag();
此外,您上面的代码每次都创建一个实例,但此后,您继续在每次迭代中创建一个新实例,并将其分配给同一个变量,而无需存储它或将其添加到显示列表中。。。。创建一个新的后,最后一个将标记为垃圾收集

结果是您创建的最后一个实例仍然存在,因为它是唯一一个具有引用它的变量的实例。

为什么不使用数组

var pages:Array = new Array;

for(var p = 1; daTotalPages >= p; p++)
{
   var screenPage:MovieClip = new theFlagScreen();
   pages.push(screenPage)
}
现在您有了一个包含所有实例的数组

var myPage:MovieClip = pages[5] as MovieClip;
myPage.startDrag();
此外,您上面的代码每次都创建一个实例,但此后,您继续在每次迭代中创建一个新实例,并将其分配给同一个变量,而无需存储它或将其添加到显示列表中。。。。创建一个新的后,最后一个将标记为垃圾收集


结果是您创建的最后一个实例仍然存在,因为它是唯一一个有引用它的变量的实例。

screenPage
只引用了一件事。在您的循环中,您会在运行时不断覆盖它,因此最终它会指向最后一个
滞后屏幕的实例。。。所有其他人现在都迷路了


您应该按照Prototypic的建议,将这些实例存储在一个数组中,这样您就不会丢失它们。

screenPage
仅指一件事。在您的循环中,您会在运行时不断覆盖它,因此最终它会指向最后一个
滞后屏幕的实例。。。所有其他人现在都迷路了


您应该按照Prototypic的建议,将这些实例存储在一个数组中,这样您就不会丢失它们。

太棒了,谢谢。成功了。太神了我爱所有的人!这么快,这么付出!那会有帮助的。谢谢如果问题得到回答,我想你不会得到我的评论。我想是吧。我喜欢这个网站,但我希望他们能让它更自由一点。我正在尽力。太棒了,谢谢。成功了。太神了我爱所有的人!这么快,这么付出!那会有帮助的。谢谢如果问题得到回答,我想你不会得到我的评论。我想是吧。我喜欢这个网站,但我希望他们能让它更自由一点。我正在尽我最大的努力。我不知道还有什么可以改变,让这一切变得更好。谢谢,我不知道还有什么可以改变的。谢谢