快速导航:   教程资源  | 经典范例  | 友情链接  | 联系我们  | 官方微博
登陆 | 注册

 flash 3d 研究所
flash3d 研究所 pv3d 教程 研究所小贴士: 别开玩笑朋友,flash怎么可能建模,找个正规的三维软件吧










最近更新:
● wan925446570阁下在讨论区里 回复“怎么配置away3d 4.0运行环境啊?...”(15:12:45)
● wan925446570阁下在讨论区里 回复“怎么配置away3d 4.0运行环境啊?...”(10:01:38)
● DDM君阁下在讨论区里 回复“怎么配置away3d 4.0运行环境啊?...”(19:07:43)
浏览主题:DDM君请进

DDM君请进
newyaya (2010-01-22 20:10:37)

按照你的指点,建立了herosprite类,提供了ISprite2D接口
*****************************
package {
 import sandy.core.scenegraph.*;
 import heroimg;
 
 public class herosprite extends Sprite2D  implements ISprite2D{
  private var hp:int;
  private var mp:int;
  private var hpmax:int;
  private var mpmax:int;
  private var exp:int;
  private var level:int;
  private var wuli:int;
  private var zhili:int;
  private var fangyin:int;
  private var jinshen:int;
  private var tipo:int;
  private var zhiye:String;
  private var img:heroimg;
  
  public function herosprite(classname:String,imgname:String,size:Number) {
   level=1;
   wuli=20;
   zhili=10;
   fangyin=20;
   jinshen=10;
   tipo=20;
   zhiye="mengjiang";
   hpmax=tipo*5;
   mpmax=zhili*5;
   hp=hpmax;
   mp=mpmax;
           
   img=new heroimg(imgname);
   
   var sp2D:Sprite2D=new Sprite2D(classname,img,size)
   
   this=sp2D;
   
  }
  
  public function Increasehp(hpnum:int) {
   hp+= hpnum;
  }
  public function Reductionhp(hpnum:int) {
   hp-= hpnum;
  }
  public function Increasemp(mpnum:int) {
   mp+= mpnum;
  }
  public function Reductionmp(mpnum:int) {
   mp-= mpnum;
  }
  public function Increaseexp(expnum:int) {
   exp+= expnum;
  }
  public function levelup() {
   level++;
  }
  public function Increasewuli(wulinum:int) {
   wuli+= wulinum;
  }
  public function Increasezhili(zhilinum:int) {
   zhili+= zhilinum;
  }
  public function Increasefangyin(fangyinnum:int) {
   fangyin+= fangyinnum;
  }
  public function Increasejinshen(jinshennum:int) {
   jinshen+= jinshennum;
  }
  public function Increasetipo(tiponum:int) {
   tipo+= tiponum;
  }
 }
}
*************************
但是编译时:出现错误。
提示为“1050: 无法为非引用值赋值。this=sp2D;”
该如何解决呢?






flash 3d 研究所 doo
(2010-01-22 20:44:59)
不知道这里让不让其他人进来不..呵呵~~
不清楚你想要什么,看了下代码感觉有点 工厂 的味道
如是的话就按着 工厂模式来搞
A implements ISprite2D
B implements ISprite2D

Herosprite
public static function create(classname:String, imgname:String, size:Number)
{
  if("A" == classname)
  {
    return new A(imgname, size);
  }
  else if("B" == classname)
  {
  return new B(imgname, size);
  }
  else
  {
    return null;
  }

}




var c:ISprite2D = Herosprite.create(classname, imgname, size)


flash 3d 研究所 newyaya
(2010-01-22 20:50:40)
呵呵,不是我想要的,不过还是谢谢热心的doo。
具体作用在 "类的封装"这个帖子里说了。


flash 3d 研究所 DDM君
(2010-01-22 23:12:13)
用super()好了,参数就是父类的参数。

ps:以后不要用这样的标题了,不方便查找,影响也不好啊
,呵呵^^



flash 3d 研究所 newyaya
(2010-01-23 08:20:10)
终于弄好了,用super()就不需要用接口,as3帮助文档对这部分解释很含糊,看来还是做项目促进人进步啊。这次心血来潮做这游戏,学了许多知识。


flash 3d 研究所 DDM君
(2010-01-23 13:58:18)
呵呵,是的,多多遇到问题然后一个个解决掉就能提高了
^^


评论人:
邮   箱: (填入邮箱,博客地址均可)

内   容: (广告和垃圾内容可能会被删除,望理解)
链接地址

验证码:(为防止机器人骚扰,请麻烦输入验证码^_^)
  

(目前需登陆方可发表)


不想添加了