闪存 AS3 的动态阵列
Posted
技术标签:
【中文标题】闪存 AS3 的动态阵列【英文标题】:Dynamic Array of flash AS3 【发布时间】:2020-12-24 19:58:43 【问题描述】:我有一个数组来存储随机框架多项选择题的正确答案和错误答案:
var arraytruefalseanswer=[];
我使用 push 方法将每个真假答案插入到数组中:
arraytruefalseanswer.push(trueanswer)
arraytruefalseanswer.push(falseanswer)
问题是: 我无法删除 arraytruefalseanswer 的最后一个元素。
因为 如果我使用 pop 方法 arraytruefalseanswer.pop(), 它将删除数组 arraytruefalseanswer 中的所有元素或带回 arraytruefalseanswer=[]
如果我使用删除,它仍然是空的。
请帮助...如何使用 Flash AS3 删除 arraytruefalseanswer 的最后一个元素? 谢谢。
【问题讨论】:
(1) 你可以尝试像myArray = myArray.pop();
那样更新你的数组(2) 这些是你的Array options。尝试使用 slice (startPos, endPos) 像 myArray.slice(0, (myArray.length-1) );
或尝试使用 removeAt (Pos) 像 @987654324 @... 其中 myarray
是您自己的数组的名称,并且也像在步骤 1 中一样针对自身进行更新。
我使用可见性方法找到了答案。感谢您到目前为止的帮助...祝您好运。
可见性如何从数组中删除项目?也没有人能回答,因为你放了太多代码,为什么不向我们展示一个简单测试的代码(制作数组,放 3 个东西,然后向我们展示你如何尝试从该数组中删除最后一个东西,我们帮你修复) .当你知道之后,你就会在你的长代码中使用知识。
另外我仍然想知道if(XXX1jumlahbenar1_41BMID1 == XXX1jumlahbenar1_41BMID1++)
这一行......当它++
一个数组时它会做什么? ...你不能说if( myArray == myArray++) do something ;
..最后请把你的内容放在一个MovieClip中然后像myMC.gotoAndStop(x)
这样在那些帧中移动,因为单独使用gotoAndStop(x)
会使整个舞台改变帧如果您的代码试图控制该框架中不存在的东西,您将遇到错误。
"XXX1jumlahbenar1_41BMID1" 是用于存储正确答案的 var 动态文本。单击正确答案时,它将添加 1 分,并且数组“myArray”将存储“1”作为数组中的元素。当我们不知道并且仍然怀疑答案时,我们想更改另一个答案。然后我们点击review按钮。我希望这个审查按钮删除数组的最后一个元素......因为我认为唯一的方法是使用 pop() 删除等。程序仍在运行但给出了其他结果。所以,我知道为什么我不尝试使用可见的 true 和 false 来操作按钮......因此,它可以工作。
【参考方案1】:
The documentation says:当您执行pop()
时,它会返回已弹出的项目,并且数组会被修改为副作用。因此,为了只删除最后一个元素,您可以按原样调用arraytruefalseanswer.pop();
。您可以使用trace(arraytruefalseanswer)
来验证是否弹出任何内容。还要检查您的代码流,当您弹出最后一个元素时,您可能认为代码到达调用一次,但事实并非如此,它说弹出整个数组,所以您留下了一个空数组。如果没有看到您使用truefalseanswer
工作的整个代码块,我就不能说更多。
【讨论】:
我使用可见性方法找到了答案。感谢您到目前为止的帮助...祝您好运。 @AndiWidodo 所以你最终遇到了一个 XY 问题 - 你声称你有一个问题,pop()
删除了数组,实际上尝试弹出的代码没有指向数组的有效链接.好的,至少这可以帮助您调试问题。
是的......当时唯一的方法是删除数组的最后一个元素,因为我认为最简单的方法......所以我尝试了 pop,delete removeAt,splice,slice......从一个到另一个……但没有结果。然后我尝试使用可见性,这是一个很长的路要走......因为它会给其他框架带来副作用。以上是关于闪存 AS3 的动态阵列的主要内容,如果未能解决你的问题,请参考以下文章
NetApp 全闪存数据存储阵列 AFF A 系列:智能、至强、至信