你如何在 as3 中引用不同 class 中的符号?

how do you reference a symbol in a different class in as3?

我创建了两个单独的 classes,我想在第二个 class 中创建的函数中使用我在主 class 中创建的符号。我已经尝试将两个 classes 导入彼此,但是当我这样做时我得到错误 #1023。我是 as3 的新手,感谢您的帮助,因为我不知道自己做错了什么。

-谢谢!

public class SuspectSimulatorDesktop extends Sprite {
  [Embed(source="/../lib/SuspectSit.png")]
  private var CharacterSit:Class;
  var tools:Tools = new Tools();
  public var charSit:Bitmap = new CharacterSit();
  public function SuspectSimulatorDesktop() {
   
   addChild(tools);
  }
}

//Tools (Second Class)
package com.powerflasher.SampleApp {
 import com.powerflasher.SampleApp.SuspectSimulatorDesktop;
 import flash.events.MouseEvent;
 import flash.display.Sprite;
 /**
  * @author timcis
  */
 
 public class Tools extends Sprite {
  [Embed(source="/../lib/Fist.png")]
  private var Fist:Class;
  var sSim:SuspectSimulatorDesktop = new SuspectSimulatorDesktop();
  private function punchChar(event:MouseEvent):void{
   sSim.charSit.rotation = 90;
  }
}

错误 #1023 表示您的代码中存在堆栈溢出。请参阅此 link 以获取更多解释:

http://curtismorley.com/2007/08/19/flashflex-as3-error-1023-stack-overflow-occurred/

关于您的代码,您创建了一个 SuspectSimulatorDesktop class,它实例化了一个 Tools 对象,该对象又实例化了一个 SuspectSimulatorDesktop 对象,依此类推...每个 class 无限期地调用另一个并填充堆栈,因此堆栈溢出。

您需要通过删除其中任何一行来打破循环并相应地调整您的代码:

var tools:Tools = new Tools();

var sSim:SuspectSimulatorDesktop = new SuspectSimulatorDesktop();