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

时间:2015-03-02 15:56:02

标签: function actionscript-3 class import symbols

我创建了两个单独的类,我想在我在第二个类中创建的函数中使用我在主类中创建的符号。我已经尝试将两个类互相导入,但是当我这样做时,我得到错误#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;
		}
}

1 个答案:

答案 0 :(得分:0)

错误#1023表示代码中存在堆栈溢出。有关更多说明,请参阅此链接:

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

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

您需要通过删除这些行中的任何一行来破坏圆圈并相应地调整您的代码:

var tools:Tools = new Tools();

var sSim:SuspectSimulatorDesktop = new SuspectSimulatorDesktop();