1

我的 Director 项目中有一个 Flash 精灵。在该精灵的属性下,在成员和精灵选项卡下,它的名称为“评估”。在我的 Lingo 脚本中,我有以下调用:

sprite("Assessment").displayGrade(75, 3, 4)

其中 displayGrade 是一个在 Flash 对象的 ActionScript 中定义的函数,它是一个以 3 个数字为参数的方法。但是,我在这一行收到错误,无法确定原因。我是否错误地调用了 Flash 对象的方法?

4

4 回答 4

3

我浏览了一下,发现了这个:

http://groups.google.com/group/macromedia.director.basics/browse_thread/thread/85203d2879267fe1?pli=1

这也是:

http://dreamweaverforum.info/director/23160-director-11-actionscript-3-a.html

当然,您应该通过浏览 Director 11 文档进行验证。

问候,维格

于 2009-01-30T19:22:32.467 回答
2

我对导演方面一无所知,但是由于这还没有解决,我会问:你在Flash方面是怎么做的?

  • 您说您的 SWF 使用的是 AS3,但是 AS2 和 AS3 使用完全不同的引擎,所以很可能 Director 可以调用一个而不能调用另一个,或者方法不同。使用简单的 AS2 SWF 进行测试可能会有所帮助。
  • 你在哪里定义你在 Flash 中的函数?如果您的成员 Sprite 指的是 SWF,那么我认为您可能希望该功能位于 Flash 文件的主时间线上。但是,如果您的成员 Sprite 指的是 Flash 电影中的实际 Sprite,那么这是行不通的,您需要在 Sprite 内部定义该函数(或者可能是附加到该 sprite 的类)。
  • 如果对 Flash 方面有任何疑问,您是否尝试过调用内置的 flash 方法(因此保证存在)?如果影片的顶层有多个帧,您可以尝试调用 play()、stop() 或 gotoAndStop(n:Number) 等方法。如果只有一帧,那就没那么容易了,因为大多数其他方法都没有明显的视觉效果。

如果您已经确定 Flash 部分没问题,请提前道歉。这些只是猜测。

于 2009-01-29T15:39:52.743 回答
1

试试这个:

设置对您的 swf 的容器内容引用,即 Flash 主时间线:

global swfTL
on beginSprite me
swfTL = getvariable(sprite('yourFlashSprite'),'_level0',False)
end

然后打电话

swfTL.displayGrade(75, 3, 4)

希望能帮助到你。

于 2009-01-24T18:05:25.947 回答
0

我的 Director 项目中有一个 Flash 精灵。在该精灵的属性下,在成员和精灵选项卡下,它的名称为“first”。在我的 Lingo 脚本中,我有以下调用:

sprite("first").number1

其中 number1 是在 Flash 对象的 ActionScript3 中定义的变量:a=25 in flash。但是,在director中返回,但是如果ActionScript2中的swf cteate返回25!as3中从director内部的flash(swf)获取变量的语法是什么(如果在as3中创建了swf)?

于 2014-08-01T12:12:23.843 回答