0

我試圖按照本教程Flash Builder中無法識別某些關鍵字

http://tv.adobe.com/watch/starting-with-starling/starting-with-starling-welcome-screen/

當我試着讓Assets.as類(開始於大約7分鐘)某些關鍵字不被認可FB。特別是詞典,紋理和位圖。聽到代碼...

private static var gameTextures:Dictionary = new Dictionary(); 
    public static function getTexture(name:String):Texture 
    { 
    if (gameTextures[name] == undefined) 
    { 
    var bitmap:Bitmap = new Assets[name](); 
    gameTextures[name] = Texture.fromBitmap(bitmap); 
    } 
    return gameTextures[name]; 

我已經密切關注教程系列,直到這一點,但我仍然得到這些錯誤。

電話可能用於解釋 類型未定義的方法未找到或不是編譯時常:紋理,詞典和位圖 訪問可能未定義的屬性:紋理

我想感謝所有幫助我可以修復這個,謝謝。

+0

您是否正確設置了Flex項目? Flex SDK是否添加到構建路徑中? – dvdgsng 2013-03-18 03:08:34

+0

@dgesang可能是錯的,但我懷疑這個問題可能是Flash lib類而不是Flex SDK類。你會認爲它仍然能夠自動添加導入,但我似乎回憶起它沒有的情況。 – 2013-03-18 04:00:10

回答

1

我想你忘了導入命名的類。在可以從框架中使用一個類時,你必須將其導入到你的類:

package 
{ 
    import flash.display.Bitmap; 
    import flash.display3D.textures.Texture; 
    import flash.utils.Dictionary; 

    public class Assets 
    { 
     private static var gameTextures:Dictionary = new Dictionary(); 

     public static function getTexture(name:String):Texture 
     { 
      if (gameTextures[name] == undefined) 
      { 
       var bitmap:Bitmap = new Assets[name](); 
       gameTextures[name] = Texture.fromBitMap(bitmap); 
      } 
      return gameTextures[name]; 
     } 
    } 
} 

此外,在Flash Builder中,您可以鍵入CTRL + SHIFT + O(在Mac OS CMD + SHIFT + O)清潔進口。這將添加任何必需的導入語句,並在出現衝突時詢問您(如使用紋理)。它也將刪除任何不必要的進口。

在代碼中鍵入類的名稱時,可以按CTRL + SPACE來自動完成。然後,所選班級的導入也會自動進行。

+0

就是這樣!但是,謝謝,它仍然不認可「fromBitmap」作爲一種方法。如果解決方案是添加另一個導入語句,我怎麼知道要添加哪一個? – user2113538 2013-03-18 03:43:21

+0

在AsDocs在線查找您需要的任何內容,然後會顯示您導入時需要的包路徑。 – 2013-03-18 03:58:22

+0

我在示例中顯示的輸入可能不是正確的,我無法訪問您現在提到的教程。換句話說,也許'import flash.display3D.textures.Texture'不是正確的導入,因爲這個類沒有方法'fromBitMap()'。 – duTr 2013-03-18 04:02:19

相關問題