Quantcast
Channel: Cocos中文社区 - 最新主题
Viewing all articles
Browse latest Browse all 88737

不是办法的办法:解决加载服务器上的图片问题的方法

$
0
0

@734589166 写道:

之前已经发过一个帖子讨论这个问题了,这里再重新整理一下。
内存里面的Texture2D怎么赋值给sprite组件?

加载网络上的图片一定是用cc.loader.load()方法,没啥说的,重点是怎么把已经加载到了内存里面的图片赋值给sprite组件使用。
这次我在场景里放了两个引用同一张图片的sprite来说明问题,如下图,两个sprie的原始样子

两个sprite我只给**左边**的加载新图片

我之前有两个办法:
1.new 一个新的cc.SrpiteFrame,然后sprite.spriteFrame=新spriteFrame

新图片加载以后按照新图片的尺寸修改了node的width和height

中间黄色文字是自己new spriteFrame会被引擎鄙视

2.使用spriteFrame.setTexture()方法

这个不会有尺寸的问题,但是新问题是setTexture方法直接修改了图片。sprite组件初始设置的图片是a,所有引用了这个a图片的sprite都被修改了。结果就是这样,我只想修改左边的sprite,右边的sprite同时被修改了。

好再不会被鄙视了

这就是之前困扰了我差不多一个星期的问题,一直死脑筋在里面转没转出来。我都准备放弃creator了,下礼拜老板要交货,鸭梨山大啊。
昨晚干完其他活,作为调剂又把这个问题翻出来了(其实已经放弃creator转投cocos2d-js一整天了)。突然灵光一闪,想了下面的办法:

得到我需要的效果:

人物图片是个很大尺寸的图片,现在就压缩在需要的范围了,另外一个图片也没有收到影响。

还是用方法1,只是把尺寸修改回来了。
被鄙视这件事怎么处理,希望会的来说说。比如可能什么情况下有什么后果,或者怎么样处理,希望大牛来说说。
我是真不懂,也不知道会不会有什么严重问题,只能先不管了。方法2.是真的不能用,除非什么有特别需要的地方。

就是这样了,方法很简单,过程很曲折,这个问题对我的项目影响很大,已经到了放弃creator差点就开始用cocos2d-js重构的地步了。做这个决定是很痛苦的,所以格外又格外,慎重又慎重的写这个帖子记录一下。

帖子: 2

参与者: 1

阅读整个主题


Viewing all articles
Browse latest Browse all 88737

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>