【问题标题】:AS3 Unable to access public static constantAS3 无法访问公共静态常量
【发布时间】:2013-01-28 15:12:35
【问题描述】:

我在这个类中声明了两个公共静态常量:

package com.xxx.videoplayer_v2 {    
    import flash.display.DisplayObject;
    import flash.display.MovieClip; 
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.geom.Rectangle;
    import flash.text.TextField;

    public class ControlBar extends MovieClip 
    {
        public static const VOLUME_PRESSED:String = "volumePressed";
        public static const PLAY_PRESSED:String = "playPressed";        
        ...

声明对我来说看起来不错,但是当我从项目中的任何其他类调用常量时(下面是舞台上的示例)

import com.xxx.videoplayer_v2.ControlBar;

trace(ControlBar.PLAY_PRESSED);

我收到此错误:

1119: 通过 a 访问可能未定义的属性 PLAY_PRESSED 引用静态类型 Class。

为什么会这样?我已经用其他类做了数千次,语法相同,但我以前从未遇到过这个问题。

【问题讨论】:

  • 您确定您在运行时获得了正确版本的类吗? (定义了PLAY_PRESSED 的那个)
  • 您的代码完全正确,您对常量的调用也是如此。问题可能出在其他地方。您是否尝试过控制菜单中的“删除 ASO 文件并测试电影”?
  • @inhan:我现在已经尝试过了,不幸的是没有任何变化。
  • @mamá pitufo:我该如何检查?如果您要问我是否确定我正在编译的类是带有常量的版本,是的,我检查了多次
  • 我明白了!我正在回答自己让你知道。

标签: actionscript-3 flash constants


【解决方案1】:

我想通了!

我在舞台上有一个 ControlBar 实例,我为 ActionScript 导出了它的属性。

问题是这样的:我填写了与基类 (ControlBar) 完全相同的名称的 Class 文本字段,并在 Base Class 文本字段中插入了“com.weborama.videoplayer_v2.ControlBar”是对的。

我修正了填写类文本字段“VPControlBar”而不是“ControlBar”。 现在我知道我不能把同名的基类放在那里。

感谢所有试图帮助我的人!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-25
    • 2023-03-30
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多