在坐下来,观看和阅读框架时,我试了一下,不能让我的程序继续下去。
因此,当我编程时,我有3帧。一个用于预加载器,一个用于游戏(没有菜单,只是直接用于游戏),最后一个用于保存笔记和补丁注释等。 我在框架中编码。我没有任何额外的.as文件或什么也没有,这一切都有效。
然后我尝试转换为拥有GameControler.as和C.as(用于常量值等),但这不起作用。
所以我重新开始,结束了尝试并以此代码结束:
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import Game.*;
public class GameController extends MovieClip {
private var score: Number;
public function GameController() {
// constructor code
}
public function startGame() {
score = C.score;
stage.addEventListener(Event.ENTER_FRAME, update);
}
public function scoreF(e: MouseEvent):void {
score = score + 1;
}
hitBtn.addEventListener(MouseEvent.CLICK, scoreF)
private function update(e: Event) {
score_n.text = String(score);
}
}
}
我最终得到了这两个错误。
Line 30, Column 3 1120: Access of undefined property hitBtn.
Line 30, Column 45 1120: Access of undefined property scoreF.
我不理解什么?
我只想点击按钮,女巫在舞台上,加分,并更新舞台上的分数。
答案 0 :(得分:0)
即使你的问题得到了解答,这里也是你想要遵循的模式:
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.text.*;
import flash.utils.*;
import flash.ui.*;
import Game.*;
public class GameController extends MovieClip {
private var hitBtn:MovieClip;
private var score: Number;
public function GameController() {
// constructor code
createChildren();
}
protected function createChildren():void {
// when it was not read from the display list
// or created in a subclass via inheritence
if (!hitBtn) {
hitBtn = getChildByName('hitBtn') as MovieClip;
if (hitBtn) {
hitBtn.addEventListener(MouseEvent.CLICK, scoreF);
} else {
trace('Child #hitBtn is not found or not a MovieClip.').
}
}
}
public function startGame() {
score = C.score;
if (stage) {
stage.addEventListener(Event.ENTER_FRAME, update);
} else {
trace("Attempt to start the game, although the controller is not added to stage.");
}
}
public function scoreF(e: MouseEvent):void {
score = score + 1;
}
private function update(e: Event) {
score_n.text = String(score);
}
}
}
使用Flash添加子项时,会在创建MovieClip时将其添加到MovieClip中,以便您可以立即访问它们。遵循这种模式可以让您在处理大型项目时更加安全,这有时会发生变化......通过这种方式,您可以非常快速地了解错误。