【发布时间】:2015-11-17 15:44:39
【问题描述】:
我正在从一个子类调用一个函数并将当前部分变量传递给它,然后加载/删除下一部分,一切正常,直到我尝试将相同的变量传递给我之前使用的核心函数。我不明白为什么它不再工作了。
以下问题:
1180:调用可能未定义的方法 setupSection。
-
最初我设置参数并从标准函数加载类:
public function setupVariables():void { //Main code here //Establish Section currentSection = secData; setupSection(currentSection); } public function setupSection(sectionHolder:String):void { //Here selects the right choice from an Array and loads new Section. } //I call the function from the child Main.changeSection("loadNext"); public static function changeSection(lSection:String):void { var lSection : String; currentSection = lSection; trace("Val Passed = " +currentSection); //TraceOutput is - Val Passed = loadNext setupSection(currentSection); } public function setupSection(sectionHolder:String):void { //LoadSection etc. . . }
有问题的命令似乎是这样的:
setupSection(currentSection);
currentSection 是之前设置的 String。
我以前用过这个,它工作得很好,但不是来自静态函数。
如果有人能解释为什么这不起作用,我将不胜感激,因为我无法让它起作用。
【问题讨论】:
-
你应该重新考虑你的设计。混合静态和非静态函数总是会带来麻烦。静态属性和函数是独立于实例的,这意味着类
XYZ的对象不需要具有能够访问它的静态属性/函数的实例。这实际上意味着,您正试图从无到有地调用一个函数。为什么不从您的子类中调度一个事件,而不是静态函数调用? -
@DodgerThud - 正如你所说,我可能对这个问题过于关注了,以前从主类调用的函数不能通过另一个函数调用似乎是不合理的相同的代码。调度我遇到问题的事件,但我会调查它。我想控制主类的主导航以在关键类之间进行选择。加载这些关键类将为这些子类中的每一个的单独类和单独部分提供导航。从每个关键类中,都有一个选项可以在关键类之间进行更改。不知道怎么做。
-
in the same code你看,这就是问题所在,它不是同一个代码。一个在静态上下文中(全局可用),一个在对象上下文中。今天晚些时候,当我下班时,我将尝试对这个问题进行更彻底的解释。 -
@DodgerThud - 谢谢,我已经添加了一些来更好地解释我在哪里以及如何称呼它。
-
您的代码格式不正确,您能修复一下吗?还有这个“子类”的名称是什么?
标签: function actionscript-3 variables parameter-passing call