2015-01-12 2 views
0

Я получаю эту среду выполнения error-TypeError: Error # 2007:

TypeError: Error #2007: パラメーター text は null 以外でなければなりません。 

Параметры текста должен быть ненулевым в flash.text :: TextField/набор текста() на кафеля/обновить () [C: \ Users \ Makiko \ Desktop \ Michael \ Games \ New Project \ src \ Tile.as: 68] at Tile/init() [C: \ Users \ Makiko \ Desktop \ Michael \ Games \ New Project \ src \ Tile.as: 58] at flash.display :: DisplayObjectContainer/addChild() в Main/tileform() [C: \ Users \ Makiko \ Desktop \ Michael \ Games \ New Project \ src \ Main.as: 115] Главная/deal() [C: \ Users \ Makiko \ Desktop \ Michael \ Games \ New Pro ject \ src \ Main.as: 106] at Main/createtile() [C: \ Users \ Makiko \ Desktop \ Michael \ Games \ New Project \ src \ Main.as: 86] в Main/init() [ C: \ Users \ Makiko \ Desktop \ Michael \ Games \ New Project \ src \ Main.as: 54] в Main() [C: \ Users \ Makiko \ Desktop \ Michael \ Games \ New Project \ src \ Main. as: 33]

Я не могу назвать точный эквивалентный вопрос.

Я думаю, что этот код является источником проблемы, но как его исправить?

package { 
    import flash.display.Sprite; 
    import flash.events.MouseEvent; 
    import flash.text.TextField; 
    import flash.text.TextFormat; 
    import flash.events.*; 
    import excludespace; 
    import Math; 
    import flash.display.Bitmap; 
    import background; 
    import returncarrier; 
    import tilecarrier; 
    import Array; 
    import flash.text.* 

    public class Tile extends Sprite { 
     internal var mode :String = "practice"; 
     internal var submode :String = "blank"; 
     private var setX:int; 
     private var setY:int; 
     private var IDlocal:int; 
     private var kanalocal:String; 
     private var valuelocal:int; 
     private var kanafield:TextField; 
     private var valuefield:TextField; 
     internal var wordmultiplier:Array= new Array([[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,3,0,0,0,0,0,0,3,0,0,0,0,0,0,3],[0,0,2,0,0,0,0,0,0,0,0,0,0,0,2,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,2,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,2,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,3],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,2,0,0,0,0,0,2,0,0,0,0],[0,0,0,0,2,0,0,0,0,0,0,0,2,0,0,0],[0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0],[0,0,2,0,0,0,0,0,0,0,0,0,0,0,2,0],[0, 3, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 3]]); 
     internal var lettermultiplier:Array = new Array([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1], [1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1], [1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 1], [1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1], [1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1], [1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2], [1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 1, 1], [1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1]]) ; 

     /*[Embed(source="/../lib/meiryo", 
     fontName = "myFont", 
     mimeType = "application/x-font", 
     advancedAntiAliasing="true", 
     embedAsCFF = "false")] 
     internal var japanese:Class;*/ 
     [Embed(source="/../lib/blank.png")] 
     internal var blank1:Class; 

     internal var checkstart:Boolean = false; 
     internal var start:Boolean = true; 
     private var blank2:Bitmap; 

     public function Tile(ID:int,kana:String,value:int):void { 
      IDlocal = ID; 
      kanalocal = kana; 
      valuelocal = value; 
      addEventListener(Event.ADDED_TO_STAGE, init); 
     } 

     private function init(e:Event= null):void { 
      removeEventListener(Event.ADDED_TO_STAGE, init); 
      blank2 = new blank1(); 
      this.addChild(blank2); 
      addEventListener(excludespace.EVENT_START,refresh) 
     } 

     private function refresh(e:excludespace):void { 
      var myFormat:TextFormat = new TextFormat(); 
      myFormat.size = 5; 
      myFormat.align = TextFormatAlign.CENTER; 
      //myFormat.font = myFont2.fontName; 

      var myText:TextField = new TextField(); 
      myText.defaultTextFormat = myFormat; 
      myText.embedFonts = true; 
      myText.antiAliasType = AntiAliasType.ADVANCED; 
      myText.text = kanalocal; 
      addChild(myText); 
      myText.width = 15; 
      myText.height = 15; 
      myText.x = 0; 
      myText.y = 0; 
     } 
    } 
} 

В Main.as

Tileform даже не должен работать, но она по-прежнему дает выход. Теперь вместо этого я получаю TypeError: Ошибка # 1034: 強制 型 変 換 に 失敗 し ま し た .flashscreen_flash @ 44bbba1 を flash.display.Sprite に 変 換 で き ま せ ん. Мне не удалось принудить. flashscreen_flash @ 44bbba1 не может быть преобразован в flash.display.Sprite. на flashscreen/init() [C: \ Users \ Makiko \ Desktop \ Michael \ Games \ New Project \ src \ flashscreen.as: 23] на flash.display :: DisplayObjectContainer/addChild() на Main/tileform () [C: \ Users \ Makiko \ Desktop \ Michael \ Games \ New Project \ src \ Main.as: 153] на главной/сделке() [C: \ Users \ Makiko \ Desktop \ Michael \ Games \ New Project \ src \ Main.as: 122] at Main/createtile() [C: \ Users \ Makiko \ Desktop \ Michael \ Games \ New Project \ src \ Main.as: 101] на главной/init() [C: \ Users \ Makiko \ Desktop \ Michael \ Games \ New Project \ src \ Main.as: 69] в Main() [C: \ Users \ Makiko \ Desktop \ Michael \ Games \ New Project \ src \ Main.as: 33]

   private function deal():void 
     { 

      trace(hand_current.length); 

      for (var i:int = 0; i < (7-hand_current.length); i++) 
      { 

      var letterchoice:Number; 
      var randomnum:Number; 
      randomnum = (Math.random() * (1 + pool.length)); 
      trace (randomnum); 
      letterchoice = Math.floor(randomnum); 
      trace (letterchoice); 
      hand_current.push(pool[letterchoice]); 
      pool.splice(letterchoice, 1); 

      for (var k:int = 0; k < 6; k++) 
       { 
        trace(k); 
        trace(baseset[hand_current[k]]); 
        trace(basevalue[hand_current[k]]);} 
      } 
      } 

      internal var tilearray:Array = new Array(); 


      private function tileform():void 

      { 
for (var i:int = 0; i < 6; i++) 
       {var atile:Sprite = new Tile(i,baseset[hand_current[i]],basevalue[hand_current[i]]); 

       atile.x = (i * 32); 
      atile.y = 480; 
      addChild(atile); 
      tilearray.push(atile); 
       } 
      screen = new flashscreen(); 
      screen.x = 0; 
      screen.y = 0; 
      addChild(screen); 

      } 
+0

Это код для "Tile.as"? Исправьте уценку, чтобы сообщение об ошибке и код были более читабельными. – belwood

+0

Это китайский или японский? Мне нравится, как вы просто сбрасываете сообщение об ошибке на иностранном языке и ожидаете какой-либо помощи. –

+0

Японский, но его просто код ошибки действительно дает стандартизированное бесполезное сообщение, не содержащее конкретных деталей. – user2617804

ответ

2

Ошибка 2007 будет возникать при попытке установить свойство в нулевое значение, когда для него требуется ненулевое значение. Я считаю, что kanalocal - это нулевое значение.

myText.text = kanalocal; 
+0

'kanalocal' устанавливается в конструкторе, но, возможно,' kana' входит в класс как «null». Я уверен, что вы правы, хотя, поскольку это единственный способ в этом методе, который потенциально может быть «null» – BadFeelingAboutThis

+1

В принципе, 'text' не может быть установлен в' null', только действительный (включая пустой) 'String' , Если 'kanalocal' действительно может быть' null', тогда просто измените строку на 'myText.text = (kanalocal! = Null)? kanalocal: ""; – divillysausages

Смежные вопросы