2016-08-29 46 views
0

在一個小項目中,我做了一個函數來在一個條件下調用另一個函數。調用一個函數並接收:「不正確的參數數目,預期1」。

import flash.events.Event; 

var yspeed:Number=0; 
var maxspeed:Number=5; 
var accel:Number=.1; 
stage.addEventListener(Event.ENTER_FRAME, code); 
function code(codeevent:Event){ 
    if(sprite1.y>449){ 
     code2(); 
    } 
} 


function code2(code2event:Event):void{ 
    if(yspeed<5){ 
     yspeed+=.5 
     yspeed-=accel 
     } 
    if(yspeed>5){ 
     yspeed=5 
    } 
    sprite1.y-=yspeed; 
    trace(yspeed) 
} 

我得到的錯誤:Line 9 1136: Incorrect number of arguments. Expected 1. 在九號線,它只是有code2();

注意,我已經嘗試做

code2(Event); 

code2(code2event:Event); 

code2(code2event); 

,他們都拿出了不同的錯誤。 我也嘗試更改函數的名稱,並在調用它之後添加:void

目前,sprite1的位置爲x = 182和Y = 482在舞臺上是小320x480

我沒有對爲什麼會發生任何頭緒。

回答

3

當您使用未定義默認值的參數定義函數時,它們是必需的(您需要必須在調用函數時爲這些參數提供值)。

function code2(code2event:Event = null) { 
    // ... 
} 

,或者通過提供null顯式調用時函數像這樣:

code2(null); 

至於你的企圖:您可以通過定義的null這樣的默認值解決您的問題

  1. code2(Event) - 在這裏,您傳遞的是對類Event的引用,而不是Event類的實例。
  2. code2(code2event:Event) - 此語法顯然是錯誤的,您只在註釋(添加:Type)時聲明變量,參數等,而不是在提供值時。
  3. code2(code2event) - 如果您的代碼中有Event實例分配給名爲code2event的變量,那麼這將是有效的。

所有這一切說,它看起來並不像你code2()功能實際需要提供給它的事件,我以爲你只是模仿該部分從上述功能code()。你可以完全省略它,只需要:

function code2():void { 
    // ... 
} 
+0

工作,謝謝! –

相關問題