0
我是新來的AS3,似乎忽略東西有關的類和/或定位。我在我的圖書館中有一個與名爲'雲'的類相關聯的MovieClip(是的,雲只是一片雨雲的圖片)。我想在舞臺上添加雲。我知道有兩種方法可以做到這一點:添加影片剪輯到階段
- 將它直接從庫中拖到舞臺上。
- 使用AS3將addChild添加到舞臺。
當我使用「從庫直接拖到舞臺上」方法發佈我的swf時,該類將工作。但是,當我嘗試使用AS3方法時,它不起作用。
類如下:
package {
import flash.display.MovieClip;
import flash.events.KeyboardEvent;
public class cloud extends MovieClip {
public function cloud() {
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyMapping);
}
private function keyMapping(event:KeyboardEvent):void {
if (event.charCode == 13) {
MovieClip(parent).testme.text = "hello world!";
}
}
}
}
我一直在使用我的主時間軸的第1幀AS3:
stop();
var cloud_mc:cloud = new cloud();
addChild(cloud_mc);
============ ================================================== ====================
建議的修復
類別:
package {
import flash.display.MovieClip;
import flash.events.KeyboardEvent;
public class cloud extends MovieClip {
public function cloud() {
}
public function tralala() {
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyMapping);
}
private function keyMapping(event:KeyboardEvent):void {
if (event.charCode == 13) {
MovieClip(parent).testme.text = "hello world!";
}
}
}
}
AS3:
stop();
var cloud_mc:cloud = new cloud();
addChild(cloud_mc);
cloud_mc.tralala();
鏈路張貼給出了一個詳細說明。一個簡短的版本是:右鍵單擊庫項目,確保勾選了[x]導出動作腳本,然後從「類」字段複製值並使用它代替雲類。 –
謝謝!我想我現在明白了,而且我剛剛修改了我原來的帖子並提供了一個建議的修復方法 - 我們正在談論的是什麼?建議的修復方法確實有效,但我只想確保我正確地/正確地執行此操作。 – Actionman
看起來正確。只需要注意一點:您發佈的代碼對於類和庫鏈接都具有相同的名稱。這是允許的,但可能會導致混淆,如果您有多個庫項目具有不同的鏈接ID,它們都會擴展相同的類。例如,你可以將8個不同的小行星圖形命名爲「asteroid1」到「asteroid8」,它們都擴展了Metroid類。在這種情況下,你需要做「新的metroid1()」而不是「新的Metroid()」。 –