请教前辈:ImageView 如何使用TextureCache里缓存的纹理。

请教前辈:ImageView 如何使用TextureCache里缓存的纹理。
http://www.cocos2d-x.org/reference/native-cpp/V3.4/d8/d62/classcocos2d_1_1ui_1_1_widget.html#ada57b5cb7e28956b3793954a578f377c 里面只有读取本地和读取plist,那这样是否就没办法用到TextureCache缓存纹理呢? 测试过程中发现我提前缓存的大图片,在使用imageView的时候,依然会卡顿一下,使用时候才加载,而并不是使用的TextureCache已缓存的这张图片。

create的时候传参数,看源代码

兄弟,你没明白我的意思,不过还是谢谢你,我的问题已经内部解决了。

不是通过TextureResType 可以使用plist加载么,然后如果TextureCache提前加载了plist里面的图片的话应该是不重新读取了吧

兄弟怎么解决的,分享一下啊

imageview:create(string name,int type) create方法有两参数,第二个参数默认好似1即直接读取,你看C++里面枚举有说明的

auto sp_cache = CCTextureCache::sharedTextureCache()->addImage("ui/common/grid2/quality3_grid_border_small.png");
ImageView* image = ImageView::create();
image->loadTexture("ui/common/grid2/quality3_grid_border_small.png", TextureResType::UI_TEX_TYPE_PLIST);
image->setPosition(ccp(400, 500));
image->setZOrder(2);
widget->addChild(image);

这是我写的,create没有你说的那个方法啊,只有loadTexture有,但是我这么写,找不到图片啊

我是2.2.5版本的= =囧

CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile(“ui/common/grid2/quality3_grid_border_small.plist”);

for (int i = 0; i < 1000; i++) {
    ImageView* image = ImageView::create();
    image->loadTexture("quality3_grid_border_small.png", TextureResType::UI_TEX_TYPE_PLIST);
    image->setPosition(ccp(400, 500));
    image->setZOrder(2);
    widget->addChild(image);
}

修改了加载路径就可以了,不过渲染次数还是会增加,在手机上还是会掉帧