首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问子movieClips FlashDevelop

访问子movieClips FlashDevelop
EN

Stack Overflow用户
提问于 2010-02-17 10:03:12
回答 1查看 824关注 0票数 0

我在另一个MovieClip中有一个movieClip。我为子movieClip提供了实例名"hSprite“,并将其添加到父movieClip stage。现在我得到一个错误,如下所示。

代码语言:javascript
复制
[Fault] exception, information=ReferenceError: Error #1056: Cannot create property hSprite on com.objects.Hero.

如果我从子电影剪辑中删除实例名称,那么错误就会消失。但是当我重新添加实例名称时,错误再次出现。

请记住,这两个类都设置为导出。

父类是由一个自定义类嵌入的,它工作得很好。但是当我给这个子movieClip一个实例名的那一刻,这个错误又开始了。

下面是嵌入父类的类。我最初想要做的是访问英雄符号中的子MovieClip

代码语言:javascript
复制
package com.objects
{
   import flash.display.MovieClip;
   import flash.events.*;
   /**
    * ...
    * @author Anthony Gordon
    */
   [Embed(source='../../../bin/Assets.swf', symbol='Hero')]
   public class Hero extends GameObject
   {   
      private var aKeyPress:Array;
      private var jumpDisabled:Boolean = false;
      //private var heroSprite:MovieClip;

      public function Hero()
      {
         wY = 150;
         wX = 90;
         speed = .5;
         aKeyPress = new Array();
         TheGame.sr.addEventListener(KeyboardEvent.KEY_DOWN, keyDownListener);
         TheGame.sr.addEventListener(KeyboardEvent.KEY_UP,keyUpListener);
      }

      private function keyDownListener(e:KeyboardEvent):void {
          //trace("down e.keyCode=" + e.keyCode);         
          aKeyPress[e.keyCode]=true;
      }

      private function keyUpListener(e:KeyboardEvent):void {
         //trace("up e.keyCode=" + e.keyCode);
         aKeyPress[e.keyCode]=false;
      }

      override public function UpdateObject():void
      {
         Controls();
         updatePosition();
      }

      private function Controls():void
      {

         if (aKeyPress[38])//Key press up
            ;//dy -= speed;         
         else if (aKeyPress[40])//Key press down
            dy += speed;

         if (aKeyPress[37])//left
         {
            dx -= speed;
         }
         else if (aKeyPress[39])//Right
         {
            dx  += speed;
         }

         if (aKeyPress[32]){//space
            jump();
         }


      }//End Controls

      private function jump():void
      {
         if (!jumpDisabled)
         {
            if (onGround)
            {
               dy = -15;
               jumpDisabled = true;
            }
         }
         else
         {
            jumpDisabled = false;            
         }
      }
   }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-02-17 10:51:26

您需要使hSprite剪辑成为该类中的公共变量。

代码语言:javascript
复制
public var hSprite:MovieClip;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2277857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档