0

3 つのスクリプト (2 つの動作と 1 つのムービー スクリプト) を持つ Director プロジェクトがあります。映画のスクリプトに次のコードがあります。

on startRecording ()
  --do stuff
  _movie.script["script2"].passGrade(75, 3, 4)
end

私のビヘイビア スクリプトの 1 つには、次のようなものがあります。

on passGrade (acc, dur, tim)
  member("Assessment", "Assessment").displayGrade(acc, dur, tim)
end passGrade

ここで、2 番目のビヘイビアー スクリプトの名前は で、script2呼び出されたステージには Flash オブジェクトがあり、3 つの数字を入力として受け取るAssessmentActionScript メソッドが呼び出されています。displayGrade

2 つの質問があります。まず、通話-movie.script["script2"].passGrade(75, 3, 4)が機能せず、その理由がわかりません。映画の台本から動作を呼び出すことはできませんか? または、これを正しく行っていませんか?2 番目の質問は、ActionScript メソッドを呼び出す方法です。スクリプトは、 と呼ばれる Flash オブジェクトの動作として定義されていますAssessmentが、Director はメソッドを見つけられないようです。

Director 11 と HotFix 3 を使用しており、Flash オブジェクトは ActionScript 2 用にコンパイルされています。

4

2 に答える 2

1

動作スクリプトを呼び出すための構文は、次のようにする必要があります。

script("script2").passGrade(75, 3, 4)

または、ビヘイビアをフラッシュ スプライト (ステージ上のフラッシュのインスタンス) にアタッチし、呼び出しをスプライトに送信することもできます。

sendSprite (flashSpriteNumOrNameOrRef, #passGrade, 75, 3, 4)

フラッシュ スプライト内の関数の呼び出しについては、多かれ少なかれ同じことを行いますが、メンバーではなくフラッシュ スプライトに呼び出しを送信します。

sprite(flashSpriteNumOrNameOrRef).displayGrade(acc, dur, tim)

ビヘイビアがスプライトにアタッチされている場合: sprite(me.spriteNum).displayGrade(acc, dur, tim)

于 2009-11-10T18:25:20.467 に答える
0

バハビオア スクリプトは複数のオブジェクトにアタッチできるため、ムービー スクリプトでビヘイビア スクリプトを呼び出すことはできません。

映画のスクリプトは「静的」ですが、動作は「動的」です。Flash オブジェクト インスタンス/スプライトを介して動作関数を参照する必要があります。

于 2009-04-16T11:01:42.590 に答える