【CC3 插件 WZB】:加速你的页游戏启动!

你好,我试用了,发现整体是时间缩短了,但是首屏显示的时间并没有缩短。在首屏这一块需要如何处理能够加快首场景的显示?感谢

1赞

更新版本 1.0.7

  1. 編輯器版本需求降至 >= 3.7.1

mark 很棒的实现

1赞

会加载失败net::ERR_CONNECTION_CLOSED 200 (OK),zip包下载失败,刷新10次有8次失败,这是为什么?网络问题吗?zip包有5.3M。

好问题! 还没遇过这样的,有专案档可以提供吗?


这个是我在html中加载ZIP,有些情况下手机app上会下载失败,在电脑上预览的时候没有出现过

我想想… “有些手机会失败” (有型号、运行浏览器的品牌) 等资讯吗?

大佬,有2.4的版本吗,我们老项目还没有用3.x

mark :rofl:

mark!!

我目前的舊项目是有2.4,但是后续的zip压缩与包装是用py写的+CI/CD建置时完成的。可以从这个思路下去修改。或者有兴趣一起搞的同学可以联系一下,我对2.4真的不熟。

我想直接在html里加载bundlezip,这样比较好控制,然后现在碰到的问题,想请您指导一下,第一个问题就是downscrpit这个东西,我的做法如下
{

        const originalSrcDescriptor = Object.getOwnPropertyDescriptor(HTMLScriptElement.prototype, 'src');

        Object.defineProperty(HTMLScriptElement.prototype, 'src', {

            get() {

                return originalSrcDescriptor!.get!.call(this);

            },

            set(value: string) {

                // 检查缓存

                if (that.zipCache.has(value)) {

                    const scriptContent = that.zipCache.get(value)

                    const blob = new Blob([scriptContent.async('arraybuffer')], { type: 'application/javascript' });

                    const blobUrl = URL.createObjectURL(blob);

                    // 设置 Blob URL 并清理内存

                    originalSrcDescriptor!.set!.call(this, blobUrl);

                    return;

                }

                // 无缓存则正常加载

                originalSrcDescriptor!.set!.call(this, value);

            },

            configurable: true,

        });

    } 这样可以不用修改引擎,加载.js代码,但是遇到的问题就是,第一次加载的时候必定报错,第二次的时候可以正常进去

报错的截图是image ,然后我再项目里有个刷新机制,刷新以后budnle可以加载,直接进入

第二个问题是,参照你的ziploader,我拦截了http的加载,但是所有的图片都看不到

,所有的图片都丢失了

我说的刷新机制意思就是,bundle加载失败以后,会第二次再加载一次bundle,第二次加载index.js的时候并没有进入blob加载~

:rofl:第二个问题,我怀疑是自动图集的问题,头皮发麻~

最近出差中,回复得比较慢些。代码片段上来看,觉得没啥问题,試試 try… catch …看看是否有遗漏的Error。

    set(value: string) {
    // 检查缓存
    try {
        if (that.zipCache.has(value)) {
            const scriptContent = that.zipCache.get(value)
            const blob = new Blob([scriptContent.async('arraybuffer')], { type: 'application/javascript' });
            const blobUrl = URL.createObjectURL(blob);

            // 设置 Blob URL 并清理内存
            originalSrcDescriptor!.set!.call(this, blobUrl);
            return;
        }
    } catch (err) {
        console.error(err);
    }

    // 无缓存则正常加载
    originalSrcDescriptor!.set!.call(this, value);
},

方便的话留个联系方式~有要事相商

打包的时候 勾选调试模式 没问题 但是 一取消 调试模式 就会 有报错 image

请问一下这个npm run build操作会报错…/query-asset/@types/packages/alipay-mini-game/@types/index.d.ts:2:62 - error TS2307: Cannot find module ‘@editor/library-type/packages/builder/@types/protect’ or its corresponding type declarations.,
query-asset是另一个插件文件夹的,我明明在web-zip-bundle文件夹下运行的,他不应该去监视其他同级文件夹下的插件目录的啊

首屏只有加载进度条和需要加载的下载,记住做假进度条会更快一点,真进度条会慢的。
把假进度条卡在90%,等待下载资源的代码都返回true了,再修改进度条加载主场景就行了。

還沒遇過這問題,你在哪種環境? Windows or Mac ?