Flash CS5 / AS3 - 无法找到(或不会执行)Main Document类 - 未调用的构造函数

时间:2011-03-16 14:54:59

标签: flash actionscript-3 flash-cs5

所有

我对AS3很新,所以这可能是一个非常微不足道的问题。但是,我被困住了。

我正在开发一个新的Flash应用程序(AS3)。该应用程序使用Document类。

以下是我设置文件夹结构的方法:

  • “application”文件夹
  •   

    “com”文件夹

  •   
        
    •     

      “[mycompany]”文件夹

        
    •   
  •   
        
    •     
            
      •       

        “[myproject]”文件夹

            
      •     
        
    •   

因此,在Flash CS5中,在主FLA中,Class:字段指向“com.mycompany.myproject.AppName”

如果单击该字段旁边的小“铅笔”图标,Flash CS5会在IDE中加载AppName.as。

在AppName.as中,前几行是:

package com.mycompany.myproject {
    import flash.display.Sprite;
    public class AppName extends Sprite {

当我测试电影时,一切都像我期望的那样有效。到目前为止,非常好。

然而,当我在我的家用电脑上尝试这个时,它不起作用 - 从不调用AppName.as中的构造函数。

没有输出消息或错误 - 只是没有任何反应。 Flash运行SWF,好像没有与之关联的ActionScript(没有时间轴代码)。

所以,显然,家用电脑上的东西与办公室电脑不同。但我无法弄清楚是什么。

这是我排除的:

  • 两台PC上的文件夹结构相同(我使用dropbox,所以我知道它们是相同的)
  • 在Flash CS5中,我没有设置任何全局源路径(即,编辑>首选项> ActionScript> ActionScript 3.0设置 - 所有路径字段都是空白)。这两台PC都是一样的
  • 我在两台PC上设置了文档特定路径(例如,在“属性”窗口中,如果单击“动作脚本设置”旁边的“编辑”,则会出现“高级ActionScript 3.0设置”对话框窗口。在“源路径”中选项卡,唯一的条目是“。”。我认为这意味着Flash将在包含FLA / SWF的文件夹中或下方找到所有源文件。

奇怪的是......在我的家用电脑上,当我在Flash CS5中时 - 如果我点击Class:字段旁边的小铅笔图标,AppName.as会在IDE中加载。所以,就像Flash知道在哪里找到文档一样。

唯一的问题是,当我测试电影时,不会调用构造函数。

我知道该课程没有错误,因为它在我的办公室电脑上完美运行。

但是,为了确定,我将班级缩减为:

package com.mycompany.myproject {
    import flash.display.Sprite;
    public class AppName extends Sprite {
        public function AppName () {
            trace ("Working!");
        }
    }
}

在我的办公室电脑上,当我测试时,我在输出窗口看到“正在工作”;在我的家用电脑上,没有。

非常感谢任何见解或建议!

[UPDATE]

回应几条评论,这里是各种设置的截图: enter image description here

这是full size image

4 个答案:

答案 0 :(得分:1)

从类名末尾删除“.as”可以解决您的问题。

Flash IDE将从合格的类名称中获取文件的位置。

答案 1 :(得分:1)

您可以尝试以下内容:转到输出窗口,然后单击关闭按钮下方右上方的小图标。在出现的菜单中,转到“过滤级别”并将其设置为“详细”并再次尝试发布。这有帮助吗?

答案 2 :(得分:0)

我知道回答你自己的问题是不好的形式,但我终于明白了。它与路径中的lettercase有关。

以下是详细信息(以防万一其他人感兴趣)......

事实证明,在我最初在(我的办公室PC)上创建应用程序的计算机上,我使用的路径是:

  • “application”文件夹
  • > “com”文件夹
  • > - > “[mycompany]”文件夹
  • > - > - > “[MyProject]”文件夹

所以,我的文档课开始了:

package com.mycompany.MyProject {

正如我所提到的,我使用dropbox。

因此,当我启动家用电脑时,Dropbox会自动启​​动,并同步所有内容。

但是,这是Dropbox创建的内容:

  • “application”文件夹
  • > “com”文件夹
  • > - > “[mycompany]”文件夹
  • > - > - > “[myproject]”文件夹

请注意,“myproject”的大写方式不同。

显然,Flash IDE对case不敏感,这就是为什么当我尝试编辑它时能够找到Class文档(MyProject.as)的原因。但是,编译器必须是,因此无法找到它。

一旦我将“myproject”文件夹更改为“MyProject”,一切都运行良好。

抱歉这么愚蠢的问题。

答案 3 :(得分:0)

已经很长时间了,但是如果有人再遇到这个问题的话。

我今天刚遇到这个问题,幸运的是我能够识别出我的错误。 我错误地添加了“:String”,导致文档类从FLA中消失。

if (floors = '') {
    floors:String = '{"floors":[{...'
}

通过删除不应该存在的“:String”,文档类重新开始运行。

if (floors = '') {
    floors = '{"floors":[{...'
}