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的建议,将这些实例存储在一个数组中,这样您就不会丢失它们。太棒了,谢谢。成功了。太神了我爱所有的人!这么快,这么付出!那会有帮助的。谢谢如果问题得到回答,我想你不会得到我的评论。我想是吧。我喜欢这个网站,但我希望他们能让它更自由一点。我正在尽力。太棒了,谢谢。成功了。太神了我爱所有的人!这么快,这么付出!那会有帮助的。谢谢如果问题得到回答,我想你不会得到我的评论。我想是吧。我喜欢这个网站,但我希望他们能让它更自由一点。我正在尽我最大的努力。我不知道还有什么可以改变,让这一切变得更好。谢谢,我不知道还有什么可以改变的。谢谢