你如何在 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();
我创建了两个单独的 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();