Пример #1
0
        /// <summary>
        /// 対象データを最後尾に付ける
        /// </summary>
        /// <param name="targetMyList"></param>
        /// <returns></returns>
        public void DequeueKey(ref List <MsgBaseNewsData> targetMyList, string DATAKEY)
        {
            //ターゲットデータ
            MsgBaseNewsData targetData = null;

            //新リスト
            List <MsgBaseNewsData> newList = new List <MsgBaseNewsData>();

            foreach (MsgBaseNewsData newsData in targetMyList)
            {
                //HITチェック
                if (newsData.DATAKEY == DATAKEY)
                {
                    targetData = newsData;
                }
                else
                {
                    newList.Add(newsData);
                }
            }

            //NULLチェック
            if (targetData == null)
            {
                return;
            }

            //最後尾に追加
            newList.Add(targetData);

            //リスト設定
            targetMyList = newList;
        }
Пример #2
0
        /// <summary>
        /// 初期化
        /// </summary>
        /// <param name="parent"></param>
        public void Init(float offsetY, GameObject parent)
        {
            //サイズ調整
            RectTransform rectTransform = Panel.GetComponent <RectTransform>();

            rectTransform.anchorMin        = new Vector2(0.5f, 0);
            rectTransform.anchorMax        = new Vector2(0.5f, 1);
            rectTransform.pivot            = new Vector2(0.5f, 0.5f);
            rectTransform.anchoredPosition = Vector2.zero;
            rectTransform.offsetMax        = Vector2.zero;
            rectTransform.offsetMin        = new Vector2(offsetY, 0);
            rectTransform.sizeDelta        = new Vector2(480, 0);

            //サムネインスタンス取得
            this.Thumbnail = Panel.transform.Find("Image").GetComponent <Image>();
            this.Text      = Panel.transform.Find("Text").GetComponent <Text>();

            //非表示に設定
            Panel.gameObject.SetActive(false);

            //親パネルにセット
            Panel.transform.SetParent(parent.transform, false);

            //ニュース初期化
            this.news = null;
        }
Пример #3
0
        /// <summary>
        /// データキーをデキューする。
        /// </summary>
        /// <param name="targetMyList"></param>
        /// <returns></returns>
        public string DequeueKey(ref List <MsgBaseNewsData> targetMyList)
        {
            //先頭から1個取り出す
            MsgBaseNewsData data = targetMyList.Dequeue();

            //最後尾に追加
            targetMyList.Add(data);

            //データキーを返す
            return(data.DATAKEY);
        }
Пример #4
0
    public IEnumerator CreateRow200(GameObject Content, float offsetY, MsgBaseNewsData news1, MsgBaseNewsData news2, MsgBaseNewsData news3)
    {
        Image panel = CreateRowPanel_200(Content, offsetY);

        yield return(StartCoroutine(CreateNewsPanel_200(panel.gameObject, -1280, news1)));

        yield return(StartCoroutine(CreateNewsPanel_200(panel.gameObject, -2, news2)));

        yield return(StartCoroutine(CreateNewsPanel_200(panel.gameObject, 1276, news3)));

        yield return(panel);
    }
Пример #5
0
        /// <summary>
        /// パネルを非表示にする
        /// </summary>
        public void Hide()
        {
            //ニュースセット
            this.news = null;

            //活性化
            this.Panel.gameObject.SetActive(false);

            //サムネクリア 更新済みマーク
            ClearThumbnail(false);

            //タイトルセット
            this.Text.text = "";
        }
Пример #6
0
        //====================================================================
        //
        //                           操作処理
        //
        //====================================================================
        #region 操作処理

        /// <summary>
        /// ニュースをセットする
        /// </summary>
        public void SetNews(MsgBaseNewsData news)
        {
            //ニュースセット
            this.news = news;

            //活性化
            this.Panel.gameObject.SetActive(true);

            //サムネクリア 更新対象にする
            ClearThumbnail(true);

            //タイトルセット
            this.Text.text = news.TITLE;
        }
Пример #7
0
        /// <summary>
        /// データを比較する
        /// 同じならtrue
        /// </summary>
        /// <param name="newData"></param>
        /// <returns></returns>
        private bool CompareData(MsgBaseNewsData newData)
        {
            try
            {
                //前回値が空ならfalse
                if (prvData == null)
                {
                    return(false);
                }

                //URLを比較する
                return(newData.URL == prvData.URL);
            }
            catch
            {
                return(false);
            }
        }
Пример #8
0
    /// <summary>
    /// 記事パネルを生成する
    /// </summary>
    /// <param name="parent"></param>
    /// <returns></returns>
    public IEnumerator CreateNewsPanel_200(GameObject parent, float offsetMinX, MsgBaseNewsData news)
    {
        //パネルを生成する
        Image panel = UICreator.CreatePanel(parent);

        //サイズ調整
        RectTransform rectTransform = panel.GetComponent <RectTransform>();

        rectTransform.anchorMin        = new Vector2(0.5f, 0);
        rectTransform.anchorMax        = new Vector2(0.5f, 1);
        rectTransform.pivot            = new Vector2(0.5f, 0.5f);
        rectTransform.anchoredPosition = Vector2.zero;
        rectTransform.offsetMax        = Vector2.zero;
        rectTransform.offsetMin        = new Vector2(offsetMinX, 0);
        rectTransform.sizeDelta        = new Vector2(638, 0);

        //コンテンツを生成
        CreateNewsImage_200(panel.gameObject, news);
        StartCoroutine(CreateNewsText200(panel.gameObject, news.TITLE));

        yield return(panel);
    }
Пример #9
0
    /// <summary>
    /// 記事サムネイルを生成する
    /// </summary>
    /// <param name="parent"></param>
    /// <returns></returns>
    public void CreateNewsImage_200(GameObject parent, MsgBaseNewsData news)
    {
        try
        {
            //イメージを生成する
            Image image = UICreator.CreateImage(parent);

            //サイズ調整
            RectTransform rectTransform = image.GetComponent <RectTransform>();
            rectTransform.anchorMin = new Vector2(0, 1f);
            rectTransform.anchorMax = new Vector2(0, 1f);
            rectTransform.pivot     = new Vector2(0.5f, 0.5f);
            rectTransform.offsetMax = new Vector2(245, -45f);
            rectTransform.offsetMin = new Vector2(22.0f, -135f);
            rectTransform.sizeDelta = new Vector2(245, 135);

            image.GetComponent <Image>().sprite = Sprite.Create(LpsImageLoader.CreateTextureFromBinary(news.THUMBNAIL_DATA), new Rect(0, 0, news.THUMBNAIL_WIDTH, news.THUMBNAIL_HEIGHT), Vector2.zero);
        }
        catch (Exception ex)
        {
            Debug.Log(ex.Message);
        }
    }
Пример #10
0
        //====================================================================
        //
        //                           イベントハンドラ
        //
        //====================================================================
        #region イベントハンドラ

        /// <summary>
        /// アイテム更新
        /// </summary>
        /// <returns></returns>
        private IEnumerator updateItem()
        {
            //インデックスチェック
            if (this.dataIndex == -1)
            {
                yield break;
            }

            //ニュースデータNULLチェック
            if (ScrollViewController.sc.NewsDataList == null)
            {
                yield break;
            }

            //ニュースデータカウントチェック
            if (ScrollViewController.sc.NewsDataList.Count - 1 < this.dataIndex)
            {
                yield break;
            }

            //ニュースデータ取得
            MsgBaseNewsData data = ScrollViewController.sc.NewsDataList[this.dataIndex];

            //コンペアチェック
            if (CompareData(data))
            {
                yield break;
            }

            //一個前のURL設定
            prvData = data;

            //タイトル表示
            this.title.text = data.TITLE;

            //サムネイルURL取得
            string thumbUrl = ThumbnailUrl.CreateListThumbnailUrl(data.THUMBNAIL_URL);

            //ファイルからサムネイル取得を試みる
            Texture2D texture = LiplisCache.Instance.ImagePath.GetWebTexutreFromFile(thumbUrl);

            //NULLならノーイメージ適用
            if (texture == null)
            {
                //優先要求リストに入れる
                LiplisCache.Instance.ImagePath.SetRequestUrlQPrioritize(thumbUrl);

                //ノーイメージテクスチャを返す
                texture = LiplisCache.Instance.ImagePath.GetNoImageTex();
            }

            //ボタンのテキスト変更
            if (texture != null)
            {
                try
                {
                    icon.sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.zero);
                }
                catch
                {
                }
            }
            else
            {
                Debug.Log("テクスチャ未更新");
            }
        }
Пример #11
0
        //====================================================================
        //
        //                           更新処理
        //
        //====================================================================
        #region 更新処理

        /// <summary>
        /// アイテム更新
        /// </summary>
        /// <returns></returns>
        private IEnumerator updateItem()
        {
            if (this.dataIndex == -1)
            {
                yield break;
            }

            //ニュースデータNULLチェック
            if (ScrollViewControllerLog.sc.NewsDataList == null)
            {
                yield break;
            }

            //ニュースデータカウントチェック
            if (ScrollViewControllerLog.sc.NewsDataList.Count - 1 < this.dataIndex)
            {
                yield break;
            }

            //ニュースデータ取得
            MsgBaseNewsData data = ScrollViewControllerLog.sc.NewsDataList[this.dataIndex];

            //コンペアチェック
            if (CompareData(data))
            {
                yield break;
            }

            //一個前のURL設定
            prvData = data;

            //タイトル表示
            this.txtNews.text = data.TITLE;

            //サムネイルURL取得
            string thumbUrl = ThumbnailUrl.CreateListThumbnailUrl(data.THUMBNAIL_URL);

            //時刻表示
            this.txtTime.text = LpsDatetimeUtil.dec(data.CREATE_TIME).ToString("yyyy/MM/dd HH:mm:ss");

            //タイプ表示
            this.txtType.text = ContentCategolyText.GetContentText(data.DATA_TYPE);

            //ファイルからサムネイル取得を試みる
            Texture2D texture = LiplisCache.Instance.ImagePath.GetWebTexutreFromFile(thumbUrl);

            //NULLならノーイメージ適用
            if (texture == null)
            {
                texture = LiplisCache.Instance.ImagePath.GetNoImageTex();
            }

            //NULLならWebからダウンロードする
            if (texture == null)
            {
                //からテクスチャ取得
                texture = LiplisCache.Instance.ImagePath.GetNoImageTex();

                //設定
                icon.sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.zero);

                //最新ニュースデータ取得
                var Async = LiplisCache.Instance.ImagePath.GetWebTexutre(thumbUrl);

                //非同期実行
                yield return(CoroutineHandler.StartStaticCoroutine(Async));

                //再度データを取り直す
                data = ScrollViewControllerLog.sc.NewsDataList[this.dataIndex];

                //データ取得
                texture = (Texture2D)Async.Current;
            }


            //ボタンのテキスト変更
            if (texture != null)
            {
                try
                {
                    icon.sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.zero);
                }
                catch
                {
                }
            }
            else
            {
            }
        }