2011-10-12 97 views
0

我想一個精靈添加到從位圖數據做了一個階段,我從與標識符pointerGraphic鏈接庫到,這裏是我的代碼:AS3:加掛的BitmapData上演

Pointer.as

package com.George.BMIapp 
{ 
    import pointerGraphic; 
    import flash.display.BitmapData; 
    import flash.display.Sprite; 
    import flash.geom.Rectangle; 
    import flash.display.Bitmap; 

    public class Pointer extends Sprite 
    { 

     const graphic:Bitmap = new Bitmap(new pointerGraphic(0,0)); 

     private var _pointer:Sprite = new Sprite(); 

     public function get sprite():Sprite 
     { 
      return this; 
     } 

     public function Pointer(y:int, minX:int, maxX:int) 
     { 
      _pointer.addChild(graphic); 
      addChild(_pointer); 
      _pointer.x = minX; 
      _pointer.y = y; 
     } 

    } 

} 

,我初始化它像這樣:

import com.George.BMIapp.Pointer; 

//Constants for pointer movement 
var POINTER_MIN_X:int = 68; 
var POINTER_MAX_X:int = 283; 

var heightPointer:Pointer = new Pointer(371, POINTER_MIN_X, POINTER_MAX_X); 

但沒有出現在舞臺上,但沒有任何錯誤(我嚴格米在啓用調試的情況下)。

回答

0

我不知道你的代碼在這個例子中是否完整,但是你的指針表明你需要將它添加到舞臺上。所以它應該是:

var heightPointer:Pointer = new Pointer(371, POINTER_MIN_X, POINTER_MAX_X); 
addChild(heightPointer); 
+0

剛剛認爲這是霍克斯回答下面的評論中的問題,我的班級試圖將其添加到舞臺上,但失敗了。我找到的解決方法是添加一個'container:Object'參數並在類中使用'container.addChild(_pointer)'並通過'var heightPointer:Pointer = new Pointer(this,371,POINTER_MIN_X,POINTER_MAX_X)實例化; –

2

創建它時,您將寬度和高度零傳遞給您的位圖數據。
這是不正確的。看評論。

+0

沒有什麼價值,我放在那裏什麼都沒有顯示,這些值沒有使用,實際圖像的值在構造函數中使用。 (它們是虛擬的值,但是必要的) –

+0

Hawks是對的,你需要提供你的BitmapData的寬度和高度。你的其他代碼看起來是正確的。我不會使用堆棧上創建的對象的常量。 –

+0

道歉,這是一個壞的假設,圖書館資產的行爲像普通的bitmapdata然後。 – Hawks