预制体动态跟换图片

  • Creator 版本:2.1

  • 目标平台: 在谷歌浏览器

  • 详细报错信息,包含调用堆栈:internal error: loader handle pipe must be skipped
    (anonymous) @ texture-util.js:101
    (anonymous) @ CCLoader.js:271
    (anonymous) @ utils.js:80
    setTimeout (async)
    callInNextTick @ utils.js:79
    (anonymous) @ CCLoader.js:267
    134.proto.allComplete @ loading-items.js:528
    134.proto.itemComplete @ loading-items.js:716
    (anonymous) @ loading-items.js:478
    190.CallbacksInvoker.invoke @ callbacks-invoker.js:258
    134.proto.itemComplete @ loading-items.js:710
    134.LoadingItems.itemComplete @ loading-items.js:379
    137.proto.flowOut @ pipeline.js:319
    flow @ pipeline.js:87
    (anonymous) @ pipeline.js:64
    (anonymous) @ downloader.js:268
    loadCallback @ downloader.js:106
    load (async)
    (anonymous) @ downloader.js:122
    downloadImage @ downloader.js:100
    130.Downloader.handle @ downloader.js:265
    flow @ pipeline.js:51
    flow @ pipeline.js:84
    137.proto.flowIn @ pipeline.js:275
    134.proto.append @ loading-items.js:508
    124.proto.load @ CCLoader.js:290
    loadImage @ texture-util.js:57
    _loadTexture @ CCSpriteFrame.js:455
    setTexture @ CCSpriteFrame.js:444
    ctor @ CCSpriteFrame.js:225
    cc_SpriteFrame @ VM24617:10
    init @ rank_model.js:78
    (anonymous) @ Hall.js:203
    xhr.onreadystatechange @ HTTP.js:59
    XMLHttpRequest.send (async)
    post @ HTTP.js:81
    initListData @ Hall.js:196
    onLoad @ Hall.js:164
    (anonymous) @ VM24412:3
    invoke @ component-scheduler.js:154
    activateNode @ node-activator.js:227
    _activate @ CCScene.js:111
    runSceneImmediate @ CCDirector.js:467
    (anonymous) @ CCDirector.js:658
    (anonymous) @ CCAssetLibrary.js:112
    (anonymous) @ CCLoader.js:271
    (anonymous) @ utils.js:80
    setTimeout (async)
    callInNextTick @ utils.js:79
    (anonymous) @ CCLoader.js:267
    134.proto.allComplete @ loading-items.js:528
    134.proto.append @ loading-items.js:505
    124.proto.load @ CCLoader.js:290
    loadAsset @ CCAssetLibrary.js:92
    _loadSceneByUuid @ CCDirector.js:633
    loadScene @ CCDirector.js:555
    (anonymous) @ BeiMiCommon.js:557
    (anonymous) @ CCDirector.js:599
    (anonymous) @ CCLoader.js:271
    (anonymous) @ utils.js:80
    setTimeout (async)
    callInNextTick @ utils.js:79
    (anonymous) @ CCLoader.js:267
    134.proto.allComplete @ loading-items.js:528
    134.proto.itemComplete @ loading-items.js:716
    134.LoadingItems.itemComplete @ loading-items.js:379
    137.proto.flowOut @ pipeline.js:319
    (anonymous) @ pipeline.js:67
    (anonymous) @ uuid-loader.js:180
    (anonymous) @ CCLoader.js:314
    134.proto.allComplete @ loading-items.js:528
    134.proto.itemComplete @ loading-items.js:716
    134.LoadingItems.itemComplete @ loading-items.js:379
    137.proto.flowOut @ pipeline.js:319
    (anonymous) @ pipeline.js:67
    (anonymous) @ uuid-loader.js:180
    (anonymous) @ CCLoader.js:314
    134.proto.allComplete @ loading-items.js:528
    134.proto.itemComplete @ loading-items.js:716
    134.LoadingItems.itemComplete @ loading-items.js:379
    137.proto.flowOut @ pipeline.js:319
    (anonymous) @ pipeline.js:67
    (anonymous) @ uuid-loader.js:180
    (anonymous) @ CCLoader.js:314
    134.proto.allComplete @ loading-items.js:528
    134.proto.itemComplete @ loading-items.js:716
    134.LoadingItems.itemComplete @ loading-items.js:379
    137.proto.flowOut @ pipeline.js:319
    (anonymous) @ pipeline.js:67
    (anonymous) @ uuid-loader.js:180
    (anonymous) @ CCLoader.js:314
    134.proto.allComplete @ loading-items.js:528
    134.proto.itemComplete @ loading-items.js:716
    134.LoadingItems.itemComplete @ loading-items.js:379
    137.proto.flowOut @ pipeline.js:319
    flow @ pipeline.js:87
    (anonymous) @ pipeline.js:64
    (anonymous) @ downloader.js:268
    loadCallback @ downloader.js:106
    load (async)
    (anonymous) @ downloader.js:122
    downloadImage @ downloader.js:100
    130.Downloader.handle @ downloader.js:265
    flow @ pipeline.js:51
    flow @ pipeline.js:84
    137.proto.flowIn @ pipeline.js:275
    134.proto.append @ loading-items.js:508
    124.proto.flowInDeps @ CCLoader.js:325
    loadDepends @ uuid-loader.js:111
    loadUuid @ uuid-loader.js:290
    133.Loader.handle @ loader.js:246
    flow @ pipeline.js:51
    (anonymous) @ pipeline.js:64
    (anonymous) @ downloader.js:268
    xhr.onload @ text-downloader.js:39
    load (async)
    139.module.exports @ text-downloader.js:36
    downloadUuid @ downloader.js:131
    130.Downloader.handle @ downloader.js:265
    flow @ pipeline.js:51
    (anonymous) @ pipeline.js:64
    (anonymous) @ asset-loader.js:83
    queryAssetInfo @ CCAssetLibrary.js:182
    125.AssetLoader.handle @ asset-loader.js:49
    flow @ pipeline.js:51
    137.proto.flowIn @ pipeline.js:275
    134.proto.append @ loading-items.js:508
    124.proto.flowInDeps @ CCLoader.js:325
    loadDepends @ uuid-loader.js:111
    loadUuid @ uuid-loader.js:290
    133.Loader.handle @ loader.js:246
    flow @ pipeline.js:51
    (anonymous) @ pipeline.js:64
    (anonymous) @ downloader.js:268
    xhr.onload @ text-downloader.js:39
    load (async)
    139.module.exports @ text-downloader.js:36
    downloadUuid @ downloader.js:131
    130.Downloader.handle @ downloader.js:265
    flow @ pipeline.js:51
    (anonymous) @ pipeline.js:64
    (anonymous) @ asset-loader.js:83
    queryAssetInfo @ CCAssetLibrary.js:182
    125.AssetLoader.handle @ asset-loader.js:49
    flow @ pipeline.js:51
    137.proto.flowIn @ pipeline.js:275
    134.proto.append @ loading-items.js:508
    124.proto.flowInDeps @ CCLoader.js:325
    loadDepends @ uuid-loader.js:111
    loadUuid @ uuid-loader.js:290
    133.Loader.handle @ loader.js:246
    flow @ pipeline.js:51
    (anonymous) @ pipeline.js:64
    (anonymous) @ downloader.js:268
    xhr.onload @ text-downloader.js:39
    load (async)
    139.module.exports @ text-downloader.js:36
    downloadUuid @ downloader.js:131
    130.Downloader.handle @ downloader.js:265
    flow @ pipeline.js:51
    (anonymous) @ pipeline.js:64
    (anonymous) @ asset-loader.js:83
    queryAssetInfo @ CCAssetLibrary.js:182
    125.AssetLoader.handle @ asset-loader.js:49
    flow @ pipeline.js:51
    137.proto.flowIn @ pipeline.js:275
    134.proto.append @ loading-items.js:508
    124.proto.flowInDeps @ CCLoader.js:325
    loadDepends @ uuid-loader.js:111
    loadUuid @ uuid-loader.js:290
    133.Loader.handle @ loader.js:246
    flow @ pipeline.js:51
    (anonymous) @ pipeline.js:64
    (anonymous) @ downloader.js:268
    xhr.onload @ text-downloader.js:39
    load (async)
    139.module.exports @ text-downloader.js:36
    downloadUuid @ downloader.js:131
    130.Downloader.handle @ downloader.js:265
    flow @ pipeline.js:51
    (anonymous) @ pipeline.js:64
    (anonymous) @ asset-loader.js:83
    queryAssetInfo @ CCAssetLibrary.js:182
    125.AssetLoader.handle @ asset-loader.js:49
    flow @ pipeline.js:51
    137.proto.flowIn @ pipeline.js:275
    134.proto.append @ loading-items.js:508
    124.proto.load @ CCLoader.js:290
    preloadScene @ CCDirector.js:592
    scene @ BeiMiCommon.js:550
    (anonymous) @ form.js:58
    (anonymous) @ BeiMiCommon.js:45
    ws.onopen @ socket.js:88

  • 重现方式:实例化prefab然后跟换图片

  • 之前哪个版本是正常的 :没发现

  • 手机型号 :

  • 手机浏览器 :

  • 编辑器操作系统 :

  • 编辑器之前是否有其它报错 :

  • 出现概率:100

  • 额外线索:
    我在for循环里面实例化prefab,prefab自身绑定了一个脚本用来跟换自身的一些Lable和Sprite,我最开始用的是常用的 cc.loader.loadRes(url , function (err, spriteFrames) {
    if(err)
    {
    console.log(“报错”,err);
    return;
    }
    let sp = new cc.SpriteFrame(spriteFrames);
    self.rank.spriteFrame = sp;
    })这个方法,但是这个方法只有在全部实例化的完毕的时候才会进去,就只能显示最后一个prefab的Sprite,其他的都不会显示,所以我用了 self.rank.spriteFrame = new cc.SpriteFrame(cc.url.raw(url));这个方法,但是运行在浏览器上面的时候会有个报错,我在其他预制体上面跟换图片的时候在用这个方法跟换图片会404,上面的方法因为只跟换了一张图片所以没问题,所以这个报错怎么解决呢?

cc.loader.loadRes('HelloWorld', cc.SpriteFrame, function (err, spriteFrame) {
    let newNode = new cc.Node();
    newNode.addComponent(cc.Sprite);
    newNode.getComponent(cc.Sprite).spriteFrame = spriteFrame;
    this.node.addChild(newNode);
}.bind(this));

参考这样更换spriteFrame

谢谢您的回复按照您的回复我这样写的,但是还是没有解决问题,所有的图片还是全部在最后一个预制体上面进行渲染,您这边方便的话也可以测试下,做个 预制体,上面绑定一个脚本进行修改这个预制体的图片和文字,然后在实例化这个预制体,用for循环多实例化几个,您这边应该就可以发现这个问题了,所有的关于渲染图片这块都在全部实例化完成后再进入的这个cc.loader.loadRes这个方法,导致其他的预制体没有实例化出来,最后一个在不断渲染图片。很感谢您的回复希望您解决了这个问题后能给我反馈下,谢谢!

你写的有问题

能说下 问题在哪里么?非常感谢

您好,请问你解决这个问题了吗

你好,我也是图片加载报错,然后我是
cc.loader.loadRes(spriteName, cc.SpriteFrame, (err, spriteFrame) => {
if (sprite.node != null) {
sprite.spriteFrame = spriteFrame;
}
});
,老是报这个错,请问怎么解决

请确认下是否你的resources资源路径有问题