Beispiel #1
0
    private IEnumerator HttpGet(NetImageRequestObj netImageRequestObj, Action <WWW, NetImageRequestObj> callbackSucceed)
    {
        bool isGetData = false;
        int  count     = 0;

        do
        {
            WWW      www   = new WWW(netImageRequestObj.netImageData.url);
            DateTime date1 = DateTime.Now;
            while ((DateTime.Now - date1).TotalSeconds <= 10)
            {
                yield return(new WaitForSeconds(0.1f));

                if (www.isDone)
                {
                    Debug.Log("获取网络图片成功!    " + netImageRequestObj.netImageData.url);
                    if (string.IsNullOrEmpty(www.error) && callbackSucceed != null)
                    {
                        callbackSucceed(www, netImageRequestObj);
                    }

                    isGetData = true;
                    break;
                }
            }
            www.Dispose();

            if (isGetData == false)
            {
                Debug.LogError("请求图片超过10秒钟:要销毁该www了,并重新请求网络图片!");
                count++;
            }
        } while (isGetData == false && count < 2);
    }
    public void ProcessSetImage(NetImageRequestObj netImageRequestObj)
    {
        NetImageRequestObj   netImageRequestObj2 = new NetImageRequestObj();
        IESetImageRequestObj reqObj = new IESetImageRequestObj();

        if (netImageRequestObj.useScaleId == 0)
        {
            netImageRequestObj.netImageData.getSprite();
            netImageRequestObj2.Copy(netImageRequestObj);

            reqObj.action = netImageRequestObj2.SetComponentSprite;
        }
        else if (netImageRequestObj.useScaleId == 1)
        {
            netImageRequestObj.netImageData.getSprite_GridScale();
            netImageRequestObj2.Copy(netImageRequestObj);

            reqObj.action = netImageRequestObj2.SetComponentSprite_GridSprite;
        }

        netImageRequestObj.ieSetImgReqObj  = reqObj;
        netImageRequestObj2.ieSetImgReqObj = reqObj;

        IESetImageMgr.getInstance().AddSetImageInQueue("everyAsset", reqObj);
    }
Beispiel #3
0
    private IEnumerator LoadImage(NetImageRequestObj netImageRequestObj)
    {
        yield return(this.HttpGet(netImageRequestObj, OnLoadNetImageSucceed));

        isProcess = false;
        NetImageMgr.getInstance().ProcessNextOne();
    }
Beispiel #4
0
 public void Copy(NetImageRequestObj netImageRequestObj)
 {
     this.imageComponent    = netImageRequestObj.imageComponent;
     this.rawImageComponent = netImageRequestObj.rawImageComponent;
     this.useScaleId        = netImageRequestObj.useScaleId;
     this.netImageData      = new NetImageData();
     this.netImageData.Copy(netImageRequestObj.netImageData);
     this.netImageProcessType = netImageRequestObj.netImageProcessType;
 }
 public int GetObjIndex(NetImageRequestObj reqObj)
 {
     for (int i = 0; i < lisObj.Count; i++)
     {
         if (lisObj[i].reqId == reqObj.reqId)
         {
             return(i);
         }
     }
     return(-1);
 }
Beispiel #6
0
    private void OnLoadNetImageSucceed(WWW www, NetImageRequestObj netImageRequestObj)
    {
        Texture2D tex = www.texture;

        netImageRequestObj.netImageData.texture2D = tex;
        NetImageMgr.getInstance().AddNetImageData(netImageRequestObj.netImageData);

        if (netImageRequestObj.netImageProcessType != ProcessType.Abort)
        {
            netImageRequestObj.netImageProcessType = ProcessType.Processed;
            NetImageMgr.getInstance().ProcessSetImage(netImageRequestObj);
        }
    }
 public void StartGetOne(NetImageRequestObj netImageRequestObj, int useScaleID = 0)
 {
     if (dicNetImage.ContainsKey(netImageRequestObj.netImageData.url))
     {
         netImageRequestObj.netImageData        = dicNetImage[netImageRequestObj.netImageData.url];
         netImageRequestObj.netImageProcessType = ProcessType.Processed;
         ProcessSetImage(netImageRequestObj);
     }
     else
     {
         lisObj.Add(netImageRequestObj);
         ProcessNextOne();
     }
 }
    public void AbortObj(NetImageRequestObj reqObj)
    {
        if (reqObj == null)
        {
            return;
        }

        int index = GetObjIndex(reqObj);

        if (index >= 0)
        {
            lisObj[index].netImageProcessType = ProcessType.NoProcess;
            lisObj.RemoveAt(index);
            Debug.Log("Abort--------------------" + reqObj.reqId);
        }
    }
    /// <summary>
    /// 开始获取一个网络图片 并自动设置图片 自动分配加载图片队列reqid
    /// </summary>
    public NetImageRequestObj StartGetOne(string url, Image imageComponent1, int useScaleID = 0)
    {
        NetImageRequestObj reqObj = new NetImageRequestObj()
        {
            reqId          = GetOneReqId(),
            imageComponent = imageComponent1,
            netImageData   = new NetImageData()
            {
                url = url
            },
            useScaleId          = useScaleID,
            netImageProcessType = ProcessType.NoProcess
        };

        StartGetOne(reqObj);
        return(reqObj);
    }
Beispiel #10
0
    public override void RefreshCellView()
    {
        if (active == false)
        {
            return;
        }

        if (requestObj != null)
        {
            requestObj.Abort();
        }

        requestObj = null;
        string path = mData.toOtherType <ImgCellData>().imgPath;

        titleImage.texture = defaultTexture;

        requestObj = NetImageMgr.getInstance().StartGetOne(path, titleImage, 1);
    }
Beispiel #11
0
 public void StartLoadImage(NetImageRequestObj netImageRequestObj)
 {
     isProcess = true;
     netImageRequestObj.netImageProcessType = ProcessType.Processing;
     netImageMono.StartCoroutine(LoadImage(netImageRequestObj));
 }