【发布时间】:2011-10-15 12:23:10
【问题描述】:
我使用 Flash CS5 Professional 创建了一个元件,将其拖到舞台上,并为其命名为 GreenLight1。如果我想让它在文档类中可见,我可以简单地执行 GreenLight1.visible=true;当我测试文件时,它很好。只要我留在文档类中,我就可以继续前进,但现在我正试图转移到另一个类并遇到各种麻烦,只是试图让 Flash 允许我访问这个简单的对象。我要做的就是让这个 GreenLight1 在这个新类中发生某种情况时不可见(visible=false),而 Flash 根本不允许我访问 GreenLight1。
到目前为止我尝试过的事情:
stage 被传递给类并由 _stage 引用,并且在我执行 _stage.addchild 或类似的操作时工作得很好。所以我试过“_stage.GreenLight1.visible=false;”我得到“ReferenceError: Error #1069: Property GreenLight1 not found on flash.display.Stage and there is no default value.”
我的文档类扩展了 Sprite,所以我想试试 root 函数。所以我尝试了“Sprite(root).GreenLight1.visible=false;”我得到“1119:通过静态类型 flash.display:Sprite 的引用访问可能未定义的属性 GreenLight1。”
最后,根据this thread 中答案的建议,我尝试按照其中的描述创建 Resource 类。我遇到了与我开始时相同的问题,因为它不知道 GreenLight1 是从什么开始的,所以我得到“1120:访问未定义的属性 GreenLight1”。这是我的 Resource.as 代码(我应该从文档类向这个类传递一些东西吗?):
`
package {
import flash.events.Event;
import flash.display.Sprite;
import flash.display.DisplayObject;
public class Resource extends Sprite {
public static var GL1:GreenLight;
public function Resource() {
addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true);
}
private function init(e:Event):void{
Resource.GL1 = GreenLight1;
}
}
}
“GreenLight”类型来自GreenLight1的源符号。我已选中“导出 ActionScript”,并且基类称为 GreenLight。这就是它的来源。我应该在某处或类似的地方制作“新绿灯”吗?我试图从中访问它的类我正在使用“Resource.GL1.visible=false;”,但它从来没有真正担心过这一点,因为我得到了上面 #3 中列出的编译错误。
无论如何,我不知道下一步该尝试什么。那么......我到底如何获得一个不是文档类来识别 GreenLight1 的类?
【问题讨论】:
标签: flash actionscript-3 flash-cs5