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); }
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; }
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(); }
public void OnDraggingItem(WowCarouselItem item, Vector2 delta) { ItemContainer.AddPosX(delta.x); }
public void OnBeginDragItem(WowCarouselItem item) { _timerAutoplay = null; _timerSlide = null; _start = ItemContainer.Pos(); }