【问题标题】:Actionscript 3 - Error #1065: Variable ArenaMain is not definedActionscript 3 - 错误 #1065:未定义变量 ArenaMain
【发布时间】:2019-03-25 10:02:27
【问题描述】:

我有以下代码:

package com.urbansquall.preloader 
{
    import flash.display.*;
    import flash.events.*;
    import flash.utils.*;

    public class Preloader extends MovieClip
    {
     private var m_firstFrame:Boolean = true;

     public function Preloader()
     {
         addEventListener(Event.ENTER_FRAME, checkFrame);
         return;
     }// end function

     protected function endLoading() : void
     {
         return;
     }// end function

     protected function updateLoading(param1:Number) : void
     {
         return;
     }// end function

     private function checkFrame(event:Event) : void
     {
         if (currentFrame == totalFrames)
         {
             removeEventListener(Event.ENTER_FRAME, checkFrame);
             startup();
             return;
         }
         if (m_firstFrame)
         {
             beginLoading();
             m_firstFrame = false;
             return;
         }
         var _loc_2:* = root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal;
         updateLoading(_loc_2);
         return;
     }// end function

     protected function get mainClassName() : String
     {
         return "Main";
     }// end function

     protected function beginLoading() : void
     {
         return;
     }// end function

     private function startup() : void
     {
         stop();
         if (!m_firstFrame)
         {
             endLoading();
         }
         var _loc_1:* = getDefinitionByName(mainClassName) as Class;
         if (_loc_1 == null)
         {
             throw new Error("Preloader:startup. There was no class matching [" + mainClassName + "]. You may need to override Preloader::mainClassName");
         }
         var _loc_2:* = new _loc_1 as DisplayObject;
         if (_loc_2 == null)
         {
             throw new Error("Preloader::startup. [" + mainClassName + "] needs to inherit from Sprite or MovieClip.");
         }
         addChildAt(_loc_2, 0);
         return;
     }// end function
    } 
}

但是当我按 enter 和 ctrl 按钮进行测试时,它会显示此主题/线程标题中显示的错误。

这个确切的错误:

    ReferenceError: Error #1065: Variable ArenaMain is not defined.
      at global/flash.utils::getDefinitionByName()
      at com.urbansquall.preloader::Preloader/startup()
      at com.urbansquall.preloader::Preloader/checkFrame()

我该如何解决/解决这个问题?

我正在使用 Adob​​e Flash Professional CS6。

【问题讨论】:

  • 1.提供的代码 sn-p 是一段反编译代码。虽然提出这样的问题并不构成犯罪,但使用反编译代码的有效理由的数量非常有限,因此这些问题通常不会仅仅因为它们而受到喜爱。此外,即使没有混淆,反编译的代码也很难处理。 2. 无论如何,这段代码没有任何帮助,因为它无法通过类名获取类定义,而类名所指的内容甚至不在提供的代码中。这就是反编译的问题——它经常破坏事情。
  • 试试getDefinitionByName( mainClassName() )。另外,您是否有Arena 的变量或类名?
  • @ Organis & VC.One :因为这是一个反编译的代码,而且游戏是在只有 CS3 或更早版本可用的时候制作的,所以,当我搜索时,有些东西发生了变化,这'在某些方面破坏了这个游戏的代码。这是游戏的主要代码,那么,我如何定义这个 ArenaMain 变量?谢谢。
  • 你没有定义它。它是(据我所知)一个类定义,应该存在于当前的 ApplicationDomain 中,以便 getDefinitionByName(...) 方法获取。它是什么以及预期会做什么 - 只有原始开发人员才能回答这些问题。

标签: actionscript-3 flash actionscript


【解决方案1】:

编译器找不到 ArenaMain 类。这可能是由于多种原因,因此无法给出准确的答案。即:库中可能有一个定义名称为 ArenaMain 的 MovieClip,但未标记为在第一帧中导出。 此外,您可能希望在发布设置中标记“允许调试”,它会告诉您带有行号的完整错误堆栈。

【讨论】:

    猜你喜欢
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-21
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    相关资源
    最近更新 更多