导演11和Flash与AS 2通信

时间:2009-01-30 02:02:51

标签: flash actionscript-2 lingo adobe-director

我有一个拥有3个脚本的Director项目(2个行为和1个电影脚本)。我的电影脚本中有以下代码:

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

在我的一个行为脚本中,我有以下内容:

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

其中第二个行为脚本的名称是script2,并且在名为Assessment的舞台上有一个Flash对象,其中有一个名为displayGrade的ActionScript方法,它将3个数字作为输入。

我有2个问题。首先,调用-movie.script["script2"].passGrade(75, 3, 4)不起作用,我无法弄清楚原因。我不允许从电影剧本打电话到行为吗?或者我没有正确地做到这一点?第二个问题是如何调用ActionScript方法?该脚本被定义为Flash对象的行为,称为Assessment,但Director似乎无法找到该方法。

我正在将Director 11与HotFix 3一起使用,并且Flash对象是针对ActionScript 2编译的。

2 个答案:

答案 0 :(得分:1)

调用行为脚本的语法应该是:

script(“script2”)。passGrade(75,3,4)

或者你可以将你的行为附加到flash精灵(舞台上flash的实例),并将调用发送到精灵:

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

关于在flash精灵中调用一个函数,你或多或少都是一样的,但你把调用发送到flash精灵,而不是成员:

精灵(flashSpriteNumOrNameOrRef).displayGrade(acc,dur,tim)

如果行为附加到精灵: 精灵(me.spriteNum).displayGrade(acc,dur,tim)

答案 1 :(得分:0)

电影脚本无法调用行为脚本,因为bahavior脚本可以附加到多个对象,然后是什么?

电影脚本是“静态的”,而行为是“动态的”。您应该通过flash对象实例/ sprite来引用行为函数。