2012-02-18 116 views
0

首先让我说我是全新的Flash开发,但不是OOP。我的任务是以面向对象的方式创建实时(意思是使用游戏循环)Flash游戏。我一直在线上关注指南,并且我认为我已经掌握了基本知识,但我的玩家精灵并未出现。玩家精灵不出现

我将一张图片导入到Flash中,然后将其转换为名为Player的符号,现在它是一个影片剪辑。我将它导出为ActionScript,并调用类com.Player

此外,我已将我的文档的类设置为com.Engine(这是我计划让我的游戏循环并将方法调用到其他类的地方)。

然后,我在与我的.fla相同的目录中创建了一个名为com的目录。在这个目录中,我做了Engine.asPlayer.as,这里是他们两个代码:

package com { 
    import flash.display.MovieClip; 
    import flash.display.Stage; 

    public class Engine extends MovieClip { 
     public function Engine() { 
      // Create a player instance 
      var player:Player = new Player(); 
      stage.addChild(player); 
      player.x = stage.stageWidth/2; 
      player.y = stage.stageHeight/2; 

     } 
    } 
} 

-

package com { 
    import flash.display.MovieClip; 

    public class Player extends MovieClip { 
     public function Player() { 

     } 
    } 
} 

据我所知,这应该使玩家出现在中心当我运行它的屏幕,但它不。我已验证Engine类和构造函数正在使用trace("hello world")进行调用,并且我得到了该输出。我也知道Player类的构造函数是通过使用相同的方法调用的。我只是不明白为什么玩家不会出现在屏幕上。

如果我从我的图书馆中将Player符号(正确的术语?)拖到舞台上,玩家精灵就会出现......所以我知道附有一张图片。

任何人都知道可能会出现什么问题?预先感谢您:)

+0

如果你右击从库中播放符号,并进入“属性...”,是“导出为ActionScript“选中,并在”类“字段,你看到”com.Player“吗? – rid 2012-02-18 23:46:03

+0

是的,是的:)虽然它没有基类,那有什么关系? – 2012-02-18 23:54:56

+0

基类应该是'flash.display.MovieClip'。 – rid 2012-02-18 23:55:40

回答

0

有没有什么在你的球员精灵?如果您在FLA文件或东西做了一个精灵,你应该从名称,以便延长:

公共类播放器扩展PlayerSpriteNameThatIsInYourFla

,或者你应该尝试画一些图形各位玩家级检查,如果你的类实际上显示:

public class Player extends MovieClip() 
{ 
    this.graphics.beginFill(0x00FF00); 
    this.graphics.drawRect(0,0,100,100); 
    this.graphics.endFill(); 
} 

也确保你拥有所有正确的进口增加:)