Exemple #1
0
            public void OnTapItem(WowCarouselItem item)
            {
                // FIXME: this one is still wrong...
                // e.g. item.Index might not be the same as _urls when there are multiple IsMulti Model.
                string url = _urls[0];

                if (_urls.Count > item.Index)
                {
                    url = _urls[item.Index];
                }
                Application.OpenURL(url);
            }
Exemple #2
0
            public void OnEndDragItem(WowCarouselItem item, SwipeEventData ev)
            {
                _last = ItemContainer.Pos();

                Vector2 deltaSlide = _last - _start;

                if (Mathf.Abs(deltaSlide.x) > SlideThreshold)
                {
                    int direction = -Math.Sign(deltaSlide.x);
                    ChangeCounter(direction);
                }

                _timerSlide  = new Timer(SlideTime);
                _targetSlide = -Size.x * _counter;
            }
Exemple #3
0
            public void InitCarousel()
            {
                _rt = GetComponent <RectTransform>();

                ItemContainer.SetWidth(Models.Count * Size.x);

                List <Sprite> sprites = new List <Sprite>();

                Models.ForEach(m => {
                    if (m.IsMulti)
                    {
                        Sprite[] spriteResources = Resources.LoadAll <Sprite>(m.ResourcePath);
                        sprites.AddRange(spriteResources);
                    }
                    else
                    {
                        Sprite sprite = Resources.Load <Sprite>(m.ResourcePath);
                        Debug.Assert(sprite != null, $"cant find sprite from resource path {m.ResourcePath}");
                        sprites.Add(sprite);
                    }

                    _urls.AddRange(m.Urls);
                });

                for (int i = 0; i < sprites.Count; i++)
                {
                    WowCarouselItem item = i == 0 ? TemplateItem : TemplateItem.gameObject.Clone <WowCarouselItem>(ItemContainer);
                    item.InitCarouselItem(this, sprites[i], i);
                    _items.Add(item);

                    WowCarouselIndicator indicator = i == 0 ? TemplateIndicator : TemplateIndicator.gameObject.Clone <WowCarouselIndicator>(TemplateIndicator.transform.parent);
                    _indicators.Add(indicator);
                }

                Refresh();
            }
Exemple #4
0
 public void OnDraggingItem(WowCarouselItem item, Vector2 delta)
 {
     ItemContainer.AddPosX(delta.x);
 }
Exemple #5
0
 public void OnBeginDragItem(WowCarouselItem item)
 {
     _timerAutoplay = null;
     _timerSlide    = null;
     _start         = ItemContainer.Pos();
 }