所以我正在阅读Keith Peters的书“ActionScript 3.0动画〜让事情发生变化”,其中一个例子是教授Parent Boxs ...我已经编写了这个代码,并在执行时运行,但是提供没有错误,没有任何反应,没有画精灵,它是一个空白的画布..?使用Flash Pro CS 6,12.0.2.529。我还没有任何其他例子的问题,而.as“ParentBox”运行正常,当我尝试运行ParentBox2时,我遇到了这个问题....思考? (对不起,对OOP来说很新,试着尽可能多地学习,而且这个网站特别令人惊叹,因为它拥有丰富的知识......
ParentBox.as
package {
import flash.display.Sprite;
public class ParentBox extends Sprite {
public function ParentBox()
{
init();
}
private function init():void{
graphics.lineStyle(1, 0);
graphics.drawRect(-50, -50, 100, 100);
}
}}
ParentBox2.as Code ....
package {
import flash.display.Sprite;
import flash.events.MouseEvent;
public class ParentBox2 extends Sprite {
private var parent1:ParentBox;
private var parent2:ParentBox;
private var ball:Sprite;
public function Reparenting2 (){
init();
}
private function init():void{
parent1 = new ParentBox();
addChild(parent1);
parent1.x = 60;
parent1.y = 60;
parent2 = new ParentBox();
addChild(parent2);
parent2.x = 170;
parent2.y = 60;
ball = new Sprite();
parent1.addChild(ball);
ball.graphics.beginFill(0xff0000);
ball.graphics.drawCircle(0, 0, 40);
ball.graphics.endFill();
ball.addEventListener(MouseEvent.CLICK, onBallClick);
}
public function onBallClick(event:MouseEvent):void{
parent2.addChild(ball);
}
}}
答案 0 :(得分:1)
您已找到答案,但对于其他任何有同样问题的人,
在ActionScript3中,构造函数应与类名具有相同的名称。
package {
import flash.display.Sprite;
import flash.events.MouseEvent;
public class ParentBox2 extends Sprite {
private var parent1:ParentBox;
private var parent2:ParentBox;
private var ball:Sprite;
public function ParentBox2 (){ //the constructor function's name should be the same as that of the class.
init();
}
...
答案 1 :(得分:0)
在
public class ParentBox2 extends Sprite {
需要重命名为
public class Reparenting2 extends Sprite {
功能...就像我说的那样,我还在学习,特别是命名的东西,谢谢大家!