cs4 中缺少 insertAt 和 removeAt 向量方法,但存在于文档中
Posted
技术标签:
【中文标题】cs4 中缺少 insertAt 和 removeAt 向量方法,但存在于文档中【英文标题】:insertAt and removeAt vector methods missing from cs4 but present in documentation 【发布时间】:2020-03-25 12:23:04 【问题描述】:我似乎在使用矢量方法 removeAt 和 insertAt 时遇到了一些问题,它们都出现在 as3 的文档中:
“https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Vector.html#insertAt()”
然而在 adobe flash cs4 中,它们是未定义的并且会引发错误。 cs4没有这些方法还是文档很差?
【问题讨论】:
运行时版本:Flash Player 19。我认为 CS4 最初是与 Flash Player 10 打包在一起的。因此,错误。 感谢回复,有什么办法可以规避吗? 我从没用 CS4 试过,但理论上是可以的。您需要下载任何相关的 AIR SDK(19 或更高版本),然后按以下方式设置您的 CS4 IDE(可能):swfhead.wordpress.com/2009/09/18/…(我使用 flash cs4 air sdk 对其进行了谷歌搜索,因此可能会有更多相关链接)。 如果您的项目不是带有资产和框架脚本的常规 FLA,而是带有外部资产的纯脚本,还有另一种选择。在这种情况下,您可以使用 AIR SDK 直接或通过 FlashDevelop 或任何其他专用 IDE 编译您的项目。 【参考方案1】:嗯,除了升级到最新版本的 Flash Player 和 SDK 之外,还有其他选择。这不是一个更好的选择,不是很优雅,但更简单。除非您正在运行一些大型数据集,否则 VPlus.insertAt(...) 实现的性能也不是问题。
实施:
package
public class VPlus
static public function deleteAt(V:*, index:int):void
// The method cuts a portion of Vector and returns it.
// We need just the "cut" part, yet it suffices.
V.splice(index, 1);
static public function insertAt(V:*, index:int, element:*):void
// Fix for from-the-end-and-backwards indexing.
if (index < 0)
index = V.length - index;
// Add one more element to the end of the given Vector.
V.push(null);
// Shift the Vector's elements from index and on.
for (var i:int = V.length - 2; i >= index; i--)
V[i+1] = V[i];
// Put the new element to its designated place.
V[index] = element;
用法:
// myVec.deleteAt(10);
VPlus.deleteAt(myVec, 10);
// myVec.insertAt(15, "Hello World!");
VPlus.insertAt(myVec, 15, "Hello World!");
【讨论】:
以上是关于cs4 中缺少 insertAt 和 removeAt 向量方法,但存在于文档中的主要内容,如果未能解决你的问题,请参考以下文章