鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ scratch二次開發(fā),素材庫為空

scratch二次開發(fā),素材庫為空

編譯scratch官方源碼,得到scratch.swf,放置在服務(wù)器上發(fā)現(xiàn)素材庫請求報錯,不會配置,求怎么修改可以正確拿到素材庫聲音庫等素材

回答
編輯回答
妖妖

server.as 下 getMediaLibrary 方法,需要獲取4個json文件
下面4個是我網(wǎng)站的json文件(其實我也是從官網(wǎng)的抓的)
造型,角色,聲音,背景
至于資源庫,我之前down了一個(度盤地址)但這個并不全(并且沒更新),后來自己寫了個腳本讀json然后一條條獲取的(數(shù)據(jù)很大..)
對了,解壓出的media文件夾就是那個資源庫


@樓主,接回復(fù),因為想直接截圖...
我的提交流程其實比較繁瑣(蠢),畢竟涉及到三塊(而as除了HttpRequest外無法直接與服務(wù)端接觸)。
流程截圖如下:
流程

至于js具體代碼你可以直接看下創(chuàng)建頁面,as代碼相對簡單:

  • (以下都是as代碼)先設(shè)置js回調(diào)接口
addExternalCallback('ASCallbackSave', saveCallbackProject);//保存回調(diào)模塊監(jiān)聽


public function saveCallbackProject(arr):void {
        externalCall('console.log', null, arr);
        function squeakSoundsConverted():void {
            scriptsPane.saveScripts(false);
            var projectType:String = extensionManager.hasExperimentalExtensions() ? '.sbx' : '.sb2';
            var defaultName:String = StringUtil.trim(projectName());
            defaultName = ((defaultName.length > 0) ? defaultName : 'project') + projectType;
            var zipData:ByteArray = projIO.encodeProjectAsZipFile(stagePane);//通過byteArray格式保存數(shù)據(jù)
            //倆域名驗證domain保證不會跨域
            externalCall('JSGetDomain',function(domain:String):void{
                var url:String = 'http://www.' + domain + '/creation-platform/scratch/upload?';
                externalCall('console.log', null, url);
                var url_param:String = 'project_id=' + arr['project_id'] + '&';//添加作品id做上傳用.
                url += url_param;
                externalCall('console.log', null, url);
                externalCall('console.log', null, '正在保存項目');
                server.saveOnServerByPost(url, zipData);
                externalCall('console.log', null, '項目保存成功');
            });
            //--end
        }

        if (arr['status'] != 'ok') {
            if (arr['is_draft'] != 1) {
                jsThrowError('cencer taken , not saved');
            } else { //保存草稿
                var projIO:ProjectIO = new ProjectIO(app);
                projIO.convertSqueakSounds(stagePane, squeakSoundsConverted);
            }
        } else { //保存用戶作品
            var projIO:ProjectIO = new ProjectIO(app);
            projIO.convertSqueakSounds(stagePane, squeakSoundsConverted);
        }
    }

先暴露接口

至于js代碼直接看我那個網(wǎng)站創(chuàng)建頁面就行,我都沒做js文件,全都寫頁面上了....

2018年9月15日 02:22