2009-01-22 65 views
1

我的Director項目中有一個Flash Sprite。在該精靈的屬性下,在Member和Sprite選項卡下,其名稱爲「Assessment」。在我的Lingo腳本,我有以下電話:Lingo調用ActionScript不起作用

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

其中displayGrade是在Flash對象的ActionScript定義爲採用3個數字作爲參數的方法的功能。但是,我在這條線上發現一個錯誤,並且無法確定原因。我是否錯誤地調用Flash對象的方法?

回答

1

試試這個:

建立一個容器內容引用到你的SWF, 這是Flash主時間軸:

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

然後調用

swfTL.displayGrade(75, 3, 4)

希望它幫助。

+0

我在嘗試時分配一個值之前得到一個使用的變量的編譯器錯誤。該錯誤是在開始Sprite我的功能。 – Elie 2009-01-25 04:11:21

+0

嗨,當我發佈我認爲你使用的是DirectorMX:在這裏你可以找到MX和MX2004的解決方案:http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_18541。軟件版本非常重要。 – 2009-01-25 10:16:35

+0

除了技術說明例子,你可以嘗試與鼠標鬆開我還是exitframe 改變beginSprite處理我 我的犯罪嫌疑人是在Flash Player的實例化之前衝突版本 – 2009-01-25 10:33:27

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部分沒有問題,請事先道歉。這些只是猜測。

0

我在我的項目總監一個Flash精靈。在該精靈的屬性下,在Member和Sprite選項卡下,它的名稱都是「first」。在我的Lingo腳本中,我有以下電話:

sprite(「first」)。number1

其中number1是在Flash對象的ActionScript3中定義的變量:a = 25。但是,在導演的迴歸中,但如果swf在ActionScript2中復位返回25! as3中的語法是什麼語法從閃存(SWF)裏面導演(如果SWF在AS3中創建)獲取變量?