lufy's legend

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 14930|回复: 13
打印 上一主题 下一主题

LAnimation事件怎么设置帧的变换速度?

[复制链接]

9

主题

0

好友

87

积分

士兵

Rank: 1

跳转到指定楼层
楼主
发表于 2013-3-29 23:12:58 |只看该作者 |倒序浏览
请问LAnimation事件怎么设置帧的变换速度?不想设置游戏整体的速度,如果改init里面就其他的也变了

看了例子后,不是很明白,speed怎么来的都没看出来,呵呵,请指教了!
部分代码如下:

    //载入角色
    var roleList = [imglist["hero1"], imglist["hero2"], imglist["hero3"], imglist["hero4"]]
    var roleListMove = LGlobal.divideCoordinate(960,960,4,4);
    var roleData = new LBitmapData(imglist["hero1"],0,240,240,240);
    hero = new LAnimation(geniusLayer,roleData,roleListMove);
    hero.setAction(1,2,1,false);

    geniusLayer.addEventListener(LEvent.ENTER_FRAME,onframe);
    geniusLayer.scaleX=gameScaleX;
    geniusLayer.scaleY=gameScaleY;
    geniusLayer.x = gamewidth/2 - 240*gameScaleX/2 ;
    geniusLayer.y = gameheight *.52

回复

使用道具 举报

9

主题

0

好友

87

积分

士兵

Rank: 1

沙发
发表于 2013-3-29 23:14:40 |只看该作者
本帖最后由 heyinlin 于 2013-3-30 00:21 编辑

还有一个问题,显示文本,是否可以设置文本边框、阴影之类的?
回复

使用道具 举报

37

主题

8

好友

9312

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

板凳
发表于 2013-3-30 09:06:47 |只看该作者
LAnimation对象只有在它的onframe函数被调用的时候动作才会变
也就是说只要控制LAnimation对象的onframe函数被调用的频率,就能控制它的速度了
你的代码中,当hero.onframe();被运行的时候,动作就会变化了,一般的做法是下面这样
  1. function onframe(){
  2.         hero.onframe();
  3. }
复制代码
但是,你可以建一个变量来控制它的运行频率
比如下面这样
  1. var speedCtrl = 2;
  2. var speedIndex = 0;
  3. function onframe(){
  4.         speedIndex++;
  5.         if(speedIndex < speedCtrl){
  6.                 return;
  7.         }
  8.         speedIndex = 0;
  9.         hero.onframe();
  10. }
复制代码
这样,你就可以通过调整speedCtrl的值,来控制hero.onframe的调用频率,从而控制LAnimation的速度

不回答与技术和引擎不相关的问题
回复

使用道具 举报

37

主题

8

好友

9312

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

地板
发表于 2013-3-30 09:11:15 |只看该作者
heyinlin 发表于 2013-3-29 23:14
还有一个问题,显示文本,是否可以设置文本边框、阴影之类的?

文本框暂时不能,你只能借助LSprite对象来解决了。
阴影到时可以,使用LDropShadowFilter对象,刚发现,API忘了加上了,尽快补上
具体用法你可以先看一下下载包中的LDropShadowFilter文件夹中的例子
不回答与技术和引擎不相关的问题
回复

使用道具 举报

9

主题

0

好友

87

积分

士兵

Rank: 1

5#
发表于 2013-3-30 13:47:58 |只看该作者
非常感谢您的回答,谢谢!
回复

使用道具 举报

9

主题

0

好友

87

积分

士兵

Rank: 1

6#
发表于 2013-3-30 14:24:27 |只看该作者
请问为什么,我把 LAnimation对象删除再重新添加后,设定的速度设置无效?
回复

使用道具 举报

37

主题

8

好友

9312

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

7#
发表于 2013-3-30 17:43:06 |只看该作者
heyinlin 发表于 2013-3-30 14:24
请问为什么,我把 LAnimation对象删除再重新添加后,设定的速度设置无效?

删除后,重新添加?不太明白,是你给我发的邮件里说的问题吗?已经回复你了
不回答与技术和引擎不相关的问题
回复

使用道具 举报

9

主题

0

好友

87

积分

士兵

Rank: 1

8#
发表于 2013-3-30 19:58:09 |只看该作者
lufy 发表于 2013-3-30 17:43
删除后,重新添加?不太明白,是你给我发的邮件里说的问题吗?已经回复你了 ...

已经解决,和邮件内的问题类似,呵呵
回复

使用道具 举报

9#
无效楼层,该帖已经被删除

9

主题

1

好友

116

积分

士兵

Rank: 1

10#
发表于 2014-5-18 15:37:33 |只看该作者
  1. <!DOCTYPE html>
  2. <html lang="en">
  3.         <head>
  4.                 <meta charset="utf-8" />
  5.                 <title>LAnimation</title>
  6.         <script type="text/javascript" src="../../lufylegend-1.8.10.simple.min.js"></script>
  7.         </head>
  8.         <body>
  9.                         <div id="legend"></div>
  10.                         <script type="text/javascript">
  11.                                 init(100,"legend",800,450,main);
  12.                                 var imgData = [
  13.                                         {name:"player",path:"player.png"}
  14.                                 ];
  15.                                 var imglist;
  16.                                 var backLayer,hero;
  17.                                 function main(){
  18.                                         LLoadManage.load(imgData,null,gameInit);
  19.                                 }
  20.                                 function gameInit(result){
  21.                                         imglist = result;
  22.                                         backLayer = new LSprite();
  23.                                         addChild(backLayer);
  24.                                         var list = LGlobal.divideCoordinate(256,256,4,4);
  25.                                         var data = new LBitmapData(imglist["player"],0,0,64,64);
  26.                                         hero = new LAnimation(backLayer,data,list);

  27.                                         backLayer.addEventListener(LEvent.ENTER_FRAME,onframe);
  28.                                 }
  29.                                 function onframe(){
  30.                                         hero.onframe();
  31.                                 }
  32.                         </script>
  33.                        
  34.                        
  35.                        
  36.         </body>
  37. </html>
复制代码
看了好久,,还是不明白动画播放的原理。。。。。。。开发者能不能解释一下 啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

防止垃圾广告,请填写任意字符

Archiver|lufy's legend

GMT+8, 2024-5-5 01:53 , Processed in 0.053758 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部