我有一个拥有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编译的。
答案 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来引用行为函数。