2016-08-25 224 views
0

所以我正在閱讀Keith Peters撰寫的「ActionScript 3.0 Animation〜Making Things Move」一書,其中一個例子就是教授Parent Boxs ......我寫了這些代碼,執行後,它運行,但沒有提供錯誤,沒有任何反應,沒有任何Sprite被繪製,它是一個空白的畫布..?使用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代碼....

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

public class ParentBox2 extends Sprite { 
需要

重命名爲

public class Reparenting2 extends Sprite { 

功能...就像我說的,我還在學習,特別是命名的東西,謝謝大家!

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(); 
} 
...