2016-09-22 6 views
0

私はちょうどプロジェクトを開始しましたが、(イベントリスナーの)関数を文字列で呼び出すことができるかどうか疑問に思っています。関数を文字列として呼び出す方法はありますか?

import flash.utils.Timer; 
import flash.events.Event; 
import flash.events.TimerEvent; 

var threesec:Timer=new Timer(3000, 1); 
var whaton:String="tsecc" 
threesec.start(); 
threesec.addEventListener(TimerEvent.TIMER_COMPLETE, whaton); 
function tsecc(tsecc:TimerEvent):void{ 
    trace("Hello") 
    threesec.reset(); 
    threesec.start(); 
} 

これは、このラインの動作しません:

threesec.addEventListener(TimerEvent.TIMER_COMPLETE, whaton); 

と、このエラーコード:

1067: Implicit coercion of a value of type String to an unrelated type Function. 

私は私がやっているか知って恐ろしく間違っているが、正しいがあります文字列形式の関数を呼び出す方法は?

変数にプロパティを追加する必要がありますか。別のタイプの変数を作成する必要がありますか?

+0

文字列形式の関数を呼び出す正しい方法はありますか?または、変数を持つ関数を呼び出す –

+0

@WillTowerが求めていたのは、直面する問題ではなく、なぜこの複雑な方法で関数を呼び出そうとしているのかと思います。実際の関数名を使用し、それを使って完了してください。あなたが投稿したコードの中であなたが望むようにそれをすることには意味がありません。 – null

答えて

4
threesec.addEventListener(TimerEvent.TIMER_COMPLETE, this[whaton]); 

これを行うには、「ブラケット構文」を使用しました。あなたはインターネットで検索することでそれについてもっと知ることができます。

+0

私はこのようなものがあることを知っていましたが、私はそれが何であるかを知りませんでした。ありがとうございました! –

+0

ようこそ。 – HITMAN

関連する問題