2011-08-29 78 views
0

我是新來的,並且在使用as3中的類時遇到了問題。 我在主時間軸AS3對象數組到類

function badPlayer() 
    { 
     var bads:Array = new Array(); 
     for (var i=0; i<5; i++) 
     { 
      var mc = new bman(); 
      mc.name=["mc"+i]; 
      bads.push(mc); 
      _backGround.addChild(mc); 
      mc.x = 100; 
      mc.y = 100; 
      trace (bads); 
      Baddies(_backGround.mc); //here I am trying to export mc to my class 
     } 
    } 

這裏創建的對象的數組是剪斷,它從我的課。我的跟蹤語句不會輸出。

public class Baddies extends MovieClip 
{ 
    private var pistolSound:pistolShot = new pistolShot(); 
    //private var mc = new mc(); 
    private var _rotateSpeedMax:Number = 2; 
    private var _gravity:Number = .68; 
    private var _bulletSpeed:Number = 2;   
    private var _maxDistance:Number = 200; 
    private var _reloadSpeed:Number = 500; //milliseconds 
    private var _barrelLength:Number = 20; 
    private var _bulletSpread:Number = 5; 
    private var _isLoaded:Boolean = true;  
    private var _isFiring:Boolean = true; 
    private var _endX:Number; 
    private var _endY:Number; 
    private var _startX:Number; 
    private var _startY:Number; 
    private var _reloadTimer:Timer; 
    private var _bullets:Array = []; 
    private var _gun:MovieClip; 
    private var _enemy:MovieClip; 
    private var _yx:Number; 
    private var _yy:Number; 
    private var _pcos:Number; 
    private var _psin:Number; 
    private var _trueRotation:Number; 
    public function Baddies() 
    { 
     trace("working"); 
     stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler); 
    } 

基本上我想創建幾個壞人(寬帶城域網),並有相同的代碼適用於每個人。我也嘗試將bman的鏈接名稱更改爲Baddies,但沒有成功。

+1

你可能不會調用'badPlayer()'函數,但即使你做了,你的代碼存在其他一些問題。如果我理解你的目標是'Baddies(_backGround.mc)',我(或其他人)可以爲你重寫整個事情。順便說一句'Baddies(_background,mc)'將'_background.mc'轉換爲'Baddies'對象。 – Taurayi

+0

大聲笑...我打電話給badPlayer()函數。我試圖創建一個動態地創建一些壞道的函數。這是一款平臺風格的遊戲,我希望每一個badguys指向和射擊玩家。 _backGround是我的平臺世界的實例,每個mc或「bman」是badguys。這是我在第一場比賽中使用外部AS文件的地方,我很困惑。如果我在主要時間線上編寫了整個遊戲,我現在可能會完成遊戲。 – Heady

+0

當我將一個bman實例放在舞臺上時,我能夠讓我的代碼正常工作。但我想要有幾個壞道,並將它們分別放置在平臺世界的任意位置。當我試圖添加孩子時,所有的地獄都打亂了lol – Heady

回答

0

這段代碼有幾個非常錯誤的地方。

Baddies(_backGround.mc); //here I am trying to export mc to my class 

這是一個類型轉換,正如評論中所述。順便說一句BadDies不是一個好名字,因爲它是複數。你可能想創建一個新壞人,這將與該行完成:

var baddie = new Baddies(); 

現在你的構造函數使用stage變量。這是行不通的,因爲對象不在舞臺上,因此stagenull(如果您將實例拖放到編輯器中的舞臺上,它可能會有效。因此,使用前stage你真正需要的對象添加到舞臺:

public function Baddies() { 
    trace("new baddie created"); 
} 

public function init(mc:MovieClip) { 
    mc.addChild(this); // display this baddie 
    trace("working"); 
    stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler); 
} 

而在badPlayer功能:

var baddie = new Baddies(); 
baddie.init(_backGround); 
+0

感謝百萬kapep ...我有一個新的錯誤,但他們沒有關係,我應該沒有問題,通過他們工作:D – Heady

+0

一切都運行起來...再次感謝 – Heady