【发布时间】: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(...) 方法获取。它是什么以及预期会做什么 - 只有原始开发人员才能回答这些问题。
标签: actionscript-3 flash actionscript