---
# System prepended metadata

title: 分段載入(Partial Download)問題修正

---

# 分段載入(Partial Download)問題修正

如下連結
https://mantis.iplaystar.net/view.php?id=5792

### 原因 :
此問題是分段載入導致，分段載入則指在遊戲遊玩的時候同時載入其餘RES，在一般網路的情況下RES下載的速度很快，所以在後續使用到該RES的時候，已經載下來了。
但是在低網速的情況下，下載RES的速度很慢，導致在遊玩的時候，使用該動畫(音效)而該動畫(音效)還未抓取導致。

### 解法:

在分段載入的同時，壓張loading動畫層級，此層級開啟時，老虎機相關功能不能使用，等待載完後關閉該層級，才可遊玩遊戲。

![](https://i.imgur.com/mmMhELn.png)



---



---

### 以下為程式碼改法

可參考PSS-ON-00127 超級金彩

**project.json新增loading動畫層級JS檔**
```javascript
"src/lib/loadingInGame.js",
 ```
 
**scene_Base 新增loading動畫層級**
```javascript
  this._loadingInGame = new LoadingLayer();
  this.addChild(this._loadingInGame, 20);
 ```
preload過程中開啟該層級
```javascript=
   this._loadingInGame.reset_postion();
    .
    .
    .

    if (ispreload) {
    this._loadingInGame.setVisible(true);
    var curLoadingNum = 0;
       cc.loader.load(ResAniCommon, function(){
            return;
        }, function(){
            cc.log(">>>>> ----- load ResAniCommon");
            self._setloadingAniCommonRes();
            self._loadingFinish(curLoadingNum++);

            return;
        });
    ...
 ```
 
 判斷loading完後進入斷線回連，並關閉該動畫層級，此數字為loading相關的陣列數目
```javascript
    _loadingFinish : function(num){
        if (num === 4) {
            BK.GameController.getInstance().Recover();
            this._loadingInGame.setVisible(false);
        }
    },
 ```
 
  
**g_ctrlor_state 阻擋spin功能 以及移除這邊Recover**


```javascript
      // this.Recover();
    .
    .
    .
    checkspin:function(bSpinBtnTrigger){
    if (cc.director.getRunningScene()._loadingInGame.isVisible())
        return;
 ```

