Actionscript 3 - 错误 #1065:未定义变量 ArenaMain
Posted
技术标签:
【中文标题】Actionscript 3 - 错误 #1065:未定义变量 ArenaMain【英文标题】:Actionscript 3 - Error #1065: Variable ArenaMain is not defined 【发布时间】: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()
我该如何解决/解决这个问题?
我正在使用 Adobe Flash Professional CS6。
【问题讨论】:
1.提供的代码 sn-p 是一段反编译代码。虽然提出这样的问题并不构成犯罪,但使用反编译代码的有效理由的数量非常有限,因此这些问题通常不会仅仅因为它们而受到喜爱。此外,即使没有混淆,反编译的代码也很难处理。 2. 无论如何,这段代码没有任何帮助,因为它无法通过类名获取类定义,而类名所指的内容甚至不在提供的代码中。这就是反编译的问题——它经常破坏事情。 试试getDefinitionByName( mainClassName() )
。另外,您是否有Arena
的变量或类名?
@ Organis & VC.One :因为这是一个反编译的代码,而且游戏是在只有 CS3 或更早版本可用的时候制作的,所以,当我搜索时,有些东西发生了变化,这'在某些方面破坏了这个游戏的代码。这是游戏的主要代码,那么,我如何定义这个 ArenaMain 变量?谢谢。
你没有定义它。它是(据我所知)一个类定义,应该存在于当前的 ApplicationDomain 中,以便 getDefinitionByName(...) 方法获取。它是什么以及预期会做什么 - 只有原始开发人员才能回答这些问题。
【参考方案1】:
编译器找不到 ArenaMain 类。这可能是由于多种原因,因此无法给出准确的答案。即:库中可能有一个定义名称为 ArenaMain 的 MovieClip,但未标记为在第一帧中导出。 此外,您可能希望在发布设置中标记“允许调试”,它会告诉您带有行号的完整错误堆栈。
【讨论】:
以上是关于Actionscript 3 - 错误 #1065:未定义变量 ArenaMain的主要内容,如果未能解决你的问题,请参考以下文章
函数不返回值(错误 1170;ActionScript 3.0)
语法错误 - rightparen - ActionScript 3 - 使用数组
ReferenceError:错误 #1065:未定义变量 JSON