使用Class添加MovieClip到Stage

时间:2014-07-03 11:56:25

标签: actionscript-3 flash class keyboard-events targeting

我是AS3的新手,似乎忽略了与课程和/或定位有关的某些。我的库中有一个MovieClip链接到一个叫做“云”的类。 (是的云只是雨云的图片)。我想在舞台上添加云。我知道有两种方法可以做到这一点:

  1. 将它直接从图书馆拖到舞台上。
  2. 使用AS3将addChild添加到舞台。
  3. 当我使用&#34发布我的swf时,该课程正常工作;将它直接从图书馆拖到舞台上#34;做法。但是当我尝试使用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();
    

1 个答案:

答案 0 :(得分:1)

使用库对象的链接名称,而不是它扩展的类。

您的库对象扩展了扩展影片剪辑的云类。如果您实例化云类,则会错过库对象。

此处详细介绍了该过程:

http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b8ea63-7fee.html