ActionScript 3-公共静态常量-我希望它是动态的!

问题描述

| 我正在使用purePDF-AS3的PDF库-设置一些报告。我想使用相同的代码来加载动态数量标题和相应的数据列。但是我有以下这段代码
public static const COLUMNWIDTHS: Vector.<Number> = Vector.<Number>( [3,3,3] );
我曾尝试解决此COLUMNWIDTHS问题,但似乎该库希望将其设置为公共静态const-我无法用它的方式-公共var。我大量使用AS3,但是直到我开始为项目修改代码之前,都没有遇到过这个问题。 我如何解决这个问题?     

解决方法

我不确定我是否理解您的问题。但是看起来您想动态更改
COLUMNWIDTHS
,但它也必须是
static const
。 如果那是问题,您可以修复它,声明您的
Vector
是这样的:
public static const COLUMNWIDTHS: Vector.<Number> = new Vector.<Number>();
然后,更新其内容,例如:
        for (var i:int = 0; i < 10; i++) {
            COLUMNWIDTHS[i] = 3;
        }
尽管乍看之下似乎有点违反直觉,但是将ѭ1声明为
const
的事实并不意味着您不能更改对象的内容。它仅表示参考是恒定的。它指向一个对象,而您不能使其指向另一个。也就是说,您无法重新分配
COLUMNWIDTHS
,但是您可以更改其内容。     ,我只需要研究同样的问题。这是我能想到的最佳答案:
public static const COLUMNWIDTHS: Vector.<Number> = new <Number>[3,3,3];
它至少可以在Flash 10中使用。     ,好的,人们,您在这个问题上想得太辛苦了。答案很简单,我在发帖后大约5分钟就自行弄清楚了,但是我在测试解决方案后立即崩溃了(代码没有错-我的笨拙的笔记本电脑由于过热而偶尔这样做了) i3核心[即将获得另一台笔记本电脑]。 提升系统-您是对的-以下内容:
public static const COLUMNWIDTHS: Vector.<Number> 
需要是 :
public static var COLUMNWIDTHS: Vector.<Number> 
很简单的解决方案!