lufy's legend

标题: 智力拼图小游戏,用最新版本的js,游戏不能移动了 [打印本页]

作者: san77    时间: 2014-12-29 17:13
标题: 智力拼图小游戏,用最新版本的js,游戏不能移动了
游戏地址:http://lufylegend.com/forum/forum.php?mod=viewthread&tid=87

看了下这个小游戏,想下载下来研究一下,地址上的游戏用的是1.7的js,我用的是1.9.7的,替换之后发现addEvent方法中的 imgLayer.addEventListener(LMouseEvent.MOUSE_DOWN,onDown);  没有效果,但是也没有js报错,求大神指点。。

作者: lufy    时间: 2014-12-29 17:22
你的链接不对啊,是哪个游戏
作者: san77    时间: 2014-12-29 17:33
lufy 发表于 2014-12-29 17:22
你的链接不对啊,是哪个游戏

http://www.lufylegend.com/lufyle ... m_puzzle/index.html

抱歉啊,是这个连接
作者: san77    时间: 2014-12-29 17:34
lufy 发表于 2014-12-29 17:22
你的链接不对啊,是哪个游戏

很纳闷啊,
function addEvent(event){
        imgLayer.addEventListener(LMouseEvent.MOUSE_DOWN,onDown);
}

感觉是这个方法没有触发,但是也没有报错呢。
imgLayer 这个也是全局变量,应该也不存在作用域的问题,求老大指点啊
作者: lufy    时间: 2014-12-29 17:58
san77 发表于 2014-12-29 17:34
很纳闷啊,
function addEvent(event){
        imgLayer.addEventListener(LMouseEvent.MOUSE_DOWN,onDown);

虽然具体原因我没仔细看
不过,main函数里面加一行
  1. LMouseEventContainer.set(LMouseEvent.MOUSE_DOWN,true);
复制代码
就可以了
作者: san77    时间: 2014-12-29 18:02
lufy 发表于 2014-12-29 17:58
虽然具体原因我没仔细看
不过,main函数里面加一行就可以了

谢谢老大,是好了,我去看看api,看到底是咋回事
作者: san77    时间: 2015-1-6 17:16
lufy 发表于 2014-12-29 17:58
虽然具体原因我没仔细看
不过,main函数里面加一行就可以了

求问下:
在js中加上 LGlobal.stageScale = LStageScaleMode.SHOW_ALL;  这个属性,在小米手机中,用微信扫一扫打开游戏,原本铺满手机屏幕的游戏变的特别大,还超出屏幕了,这是咋回事呢..
作者: lufy    时间: 2015-1-6 17:21
san77 发表于 2015-1-6 17:16
求问下:
在js中加上 LGlobal.stageScale = LStageScaleMode.SHOW_ALL;  这个属性,在小米手机中,用微信 ...

请参考API文档中“全屏设置”部分
作者: san77    时间: 2015-1-6 17:24
lufy 发表于 2015-1-6 17:21
请参考API文档中“全屏设置”部分

看过了,用浏览器第一次打开也会变的特别大,超出屏幕,但刷新一次就会好了,感觉是第一次打开这个属性没有起作用。
作者: san77    时间: 2015-1-6 17:25
lufy 发表于 2015-1-6 17:21
请参考API文档中“全屏设置”部分

我在main函数开始添加的:
LGlobal.stageScale = LStageScaleMode.SHOW_ALL;
LSystem.screen(LStage.FULL_SCREEN);
作者: lufy    时间: 2015-1-6 17:25
san77 发表于 2015-1-6 17:24
看过了,用浏览器第一次打开也会变的特别大,超出屏幕,但刷新一次就会好了,感觉是第一次打开这个属性没 ...

meta标签添加了吗?
作者: san77    时间: 2015-1-6 17:30
lufy 发表于 2015-1-6 17:25
meta标签添加了吗?

加了,就是在小米手机下,用微信和浏览器打开不行,其它手机试了都没事。
作者: lufy    时间: 2015-1-6 17:34
san77 发表于 2015-1-6 17:30
加了,就是在小米手机下,用微信和浏览器打开不行,其它手机试了都没事。 ...

针对小米这种特殊情况,你可以试一下下面代码
  1. LSystem.screen(LStage.FULL_SCREEN);
  2. setTimeout(function(){
  3.     LSystem.screen(LStage.FULL_SCREEN);
  4. },500);
复制代码
用setTimeout来延迟一下全屏设置的时间
作者: san77    时间: 2015-1-6 17:52
lufy 发表于 2015-1-6 17:34
针对小米这种特殊情况,你可以试一下下面代码用setTimeout来延迟一下全屏设置的时间 ...

还是不行,无解了..
作者: lufy    时间: 2015-1-6 18:01
san77 发表于 2015-1-6 17:52
还是不行,无解了..

不好意思,我没有小米手机,只能提供一些解决方案,但是我没办法测试
  1. if(!window.innerWidth){
  2.         window.innerWidth = document.body.clientWidth;
  3. }
  4. if(!window.innerHeight){
  5.         window.innerHeight = document.body.clientHeight;
  6. }
复制代码
把这部分代码加到
  1. LSystem.screen(LStage.FULL_SCREEN);
复制代码
的前面
你试试看行不行
作者: san77    时间: 2015-1-7 10:14
lufy 发表于 2015-1-6 18:01
不好意思,我没有小米手机,只能提供一些解决方案,但是我没办法测试把这部分代码加到的前面
你试试看行不 ...

好了,谢谢老大哈,原因是css里边加了height:100%;width:100%的属性了
作者: san77    时间: 2015-1-7 14:48
lufy 发表于 2015-1-6 18:01
不好意思,我没有小米手机,只能提供一些解决方案,但是我没办法测试把这部分代码加到的前面
你试试看行不 ...

求问下:
bitmapdata = new LBitmapData(imglist["smaill_level_"+k],0,0,130,130);
bitmap = new LBitmap(bitmapdata);
bitmap.addEventListener(LMouseEvent.MOUSE_DOWN,function(){
        alert("111");
});
//设置小图片的显示位置
bitmap.x = j*130;  
bitmap.y = i*130;
//将小图片显示到地图层
checkpointLayer.addChild(bitmap);

添加了一个图片,并且给图片绑定了一个事件,但是点击的时候没有触发,也没有报错,是我用错了么?
作者: lufy    时间: 2015-1-7 14:57
san77 发表于 2015-1-7 14:48
求问下:
bitmapdata = new LBitmapData(imglist["smaill_level_"+k],0,0,130,130);
bitmap = new LBitma ...

LBitmap没有Event
对象可用的Event在API文档中都有,具体请参考API文档
作者: san77    时间: 2015-1-7 15:08
lufy 发表于 2015-1-7 14:57
LBitmap没有Event
对象可用的Event在API文档中都有,具体请参考API文档

那如果我做一个关卡页面,有九关,我这边画了9个格子,每一个格子里边用LBitmap放了一个图片,如果不能给LBitmap绑定Event的话,还有别的方法能获取点击的是哪个关卡图片么?
作者: lufy    时间: 2015-1-7 16:01
san77 发表于 2015-1-7 15:08
那如果我做一个关卡页面,有九关,我这边画了9个格子,每一个格子里边用LBitmap放了一个图片,如果不能给 ...

给父容器加点击事件,用event.target获取点击的对象
这些东西API中都有,遇到问题请先仔细查阅API文档
http://lufylegend.com/api/zh_CN/ ... property_MOUSE_DOWN
作者: san77    时间: 2015-1-8 09:18
lufy 发表于 2015-1-7 16:01
给父容器加点击事件,用event.target获取点击的对象
这些东西API中都有,遇到问题请先仔细查阅API文档
ht ...

我用offsetX和offsetY 来判断了,已经好了, 添加文字的api,我看了LTextField  的属性,里边设置字体颜色,是设置所有文字的颜色,如果我想给一行中的几个文字添加颜色,就添加不了,我是没找对么?
作者: lufy    时间: 2015-1-8 09:43
san77 发表于 2015-1-8 09:18
我用offsetX和offsetY 来判断了,已经好了, 添加文字的api,我看了LTextField  的属性,里边设置字体颜 ...

目前没有办法给一个LTextField设置多个文字颜色,
这个功能会在下一版本1.9.8中提供
作者: san77    时间: 2015-1-26 16:46
lufy 发表于 2015-1-8 09:43
目前没有办法给一个LTextField设置多个文字颜色,
这个功能会在下一版本1.9.8中提供 ...

有没有什么可以创建一张图片,用户在手机上长按之后会出现右键的保存选项的效果呢?我现在用 LBitmap  创建的图片点击都没有任何效果,求指点.
作者: san77    时间: 2015-1-26 17:05
lufy 发表于 2015-1-8 09:43
目前没有办法给一个LTextField设置多个文字颜色,
这个功能会在下一版本1.9.8中提供 ...

因为做的小游戏要在微信里边打开,如果用 下载按钮,点击请求服务器的话,微信会阻止要下载的图片,所以比较纠结,想给做成img标签这样的,长按图片就能保存,求教啊..
作者: lufy    时间: 2015-1-27 11:31
san77 发表于 2015-1-26 17:05
因为做的小游戏要在微信里边打开,如果用 下载按钮,点击请求服务器的话,微信会阻止要下载的图片,所以 ...

另存为是Img标签才可以
canvas没这个功能
可以利用LBitmap对象的getDataURL得到图片数据,然后自己创建Img标签,给它的src赋值来实现
作者: ys1984    时间: 2015-1-28 19:01
san77 发表于 2015-1-6 17:25
我在main函数开始添加的:
LGlobal.stageScale = LStageScaleMode.SHOW_ALL;
LSystem.screen(LStage.FULL ...

可以试下加个setTimeout再初始化,有可能是页面还没加载完全,你就初始化了,这样就计算不了全局的数据吧
作者: san77    时间: 2015-2-5 15:04
ys1984 发表于 2015-1-28 19:01
可以试下加个setTimeout再初始化,有可能是页面还没加载完全,你就初始化了,这样就计算不了全局的数据吧 ...

嗯,已经解决了,谢啦




欢迎光临 lufy's legend (http://lufylegend.com/forum/) Powered by Discuz! X2.5