示例#1
0
        public static void RegisterFlipPage(MenuCommand menuCommand)
        {
            GameObject book = CreateFlipPage(UIMenuTools.GetStandardResources());

            UIMenuTools.PlaceUIElementRoot(book, menuCommand);
            // 以下必须在此执行,若放在CreateFlipPage中会因为新建对象层级未绑定以至canvas为null
            FlipPage flipPage = book.GetComponentInChildren <FlipPage>();
            Canvas   canvas   = book.GetComponentInParent <Canvas>();

            flipPage.canvas = canvas;

            flipPage.bookPanel = book.transform as RectTransform;
        }
示例#2
0
        // Constructor
        public MainPage()
        {
            InitializeComponent();

            this.ManipulationStarted += new EventHandler<ManipulationStartedEventArgs>(_uppart_ManipulationStarted);
            this.ManipulationDelta += new EventHandler<ManipulationDeltaEventArgs>(_uppart_ManipulationDelta);
            this.ManipulationCompleted += new EventHandler<ManipulationCompletedEventArgs>(_uppart_ManipulationCompleted);

            _pageElements.Add(_border0);
            _pageElements.Add(_border2);
            _pageElements.Add(_border1);

            _pixellist = new PixelData[6];
            _bmps = new WriteableBitmap[6];
            for (int i = 0; i < _bmps.Length; ++i)
            {
                var bmp = new WriteableBitmap(480, 400);
                _bmps[i] = bmp;
                _pixellist[i].Pixels = bmp.Pixels;
            }

            _samplebitmaps = new List<WriteableBitmap>();
            string[] fn = new string[]
            {
                "img.jpg",
                "img01.jpg",
                "img02.jpg",
                "img03.jpg",
                "img04.jpg",
                "img05.jpg",
                "img06.jpg",
                "img07.jpg"
            };

            foreach (var f in fn)
            {
                var wbmp = BitmapFromResource(f);
                var wbmpout0 = new WriteableBitmap(480, 400);
                var wbmpout1 = new WriteableBitmap(480, 400);
                SplitBitmap(wbmp, wbmpout0, wbmpout1);

                _samplebitmaps.Add(wbmpout0);
                _samplebitmaps.Add(wbmpout1);
            }

            var firstpage = new FlipPage
            {
                Front = _samplebitmaps[0],
                Back = _samplebitmaps[0]
            };
            _pages.Add(firstpage);

            for (int i = 1; i < _samplebitmaps.Count - 1; i += 2)
            {
                var page = new FlipPage
                {
                    Front = _samplebitmaps[i],
                    Back = _samplebitmaps[i + 1]
                };
                _pages.Add(page);
            }

            var lastpage = new FlipPage
            {
                Front = _samplebitmaps.Last(),
                Back = _samplebitmaps.Last()
            };
            _pages.Add(lastpage);

            MovePageTo(0);

            const string XAML_MOVE_ANI = @"
            <Storyboard x:Name=""_sbCurrentPage""
xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation""
    xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml""
>
			<DoubleAnimation Duration=""0:0:0.4"" To=""0"" Storyboard.TargetProperty=""CurrentPageNum"">
				<DoubleAnimation.EasingFunction>
					<PowerEase EasingMode=""EaseOut""/>
				</DoubleAnimation.EasingFunction>
			</DoubleAnimation>
		</Storyboard>";

            _sbPageMove = XamlReader.Load(XAML_MOVE_ANI) as Storyboard;
            Storyboard.SetTarget(_sbPageMove, this);

        }
示例#3
0
        static GameObject CreateFlipPage(UIResources resources)
        {
            GameObject book     = new GameObject("Book", typeof(RectTransform));
            FlipPage   flipPage = book.AddComponent <FlipPage>();

            /*GameObject border = new GameObject("Border", typeof(Image));
             * border.transform.parent = book.transform;
             * border.GetComponent<Image>().raycastTarget = false;*/

            GameObject left = new GameObject("Left", typeof(Image));

            (left.transform as RectTransform).pivot = Vector2.zero;
            left.transform.SetParent(book.transform);
            left.GetComponent <Image>().raycastTarget = false;
            left.GetComponent <Image>().enabled       = true;
            left.AddComponent <HorizontalLayoutGroup>().childAlignment = TextAnchor.MiddleCenter;

            GameObject right = new GameObject("Right", typeof(Image));

            (right.transform as RectTransform).pivot = Vector2.zero;
            right.transform.SetParent(book.transform);
            right.GetComponent <Image>().raycastTarget = false;
            right.GetComponent <Image>().enabled       = true;
            right.AddComponent <HorizontalLayoutGroup>().childAlignment = TextAnchor.MiddleCenter;

            GameObject leftOnFlip = new GameObject("LeftOnFlip", typeof(Image), typeof(Mask));

            (leftOnFlip.transform as RectTransform).pivot    = Vector2.zero;
            leftOnFlip.GetComponent <Mask>().showMaskGraphic = true;
            leftOnFlip.GetComponent <Image>().raycastTarget  = false;
            leftOnFlip.transform.SetParent(book.transform);
            leftOnFlip.SetActive(false);
            GameObject shadowLTR = new GameObject("ShadowLTR", typeof(Image));

            shadowLTR.transform.SetParent(leftOnFlip.transform);
            shadowLTR.GetComponent <Image>().raycastTarget = false;
            shadowLTR.SetActive(false);

            GameObject rightOnFlip = new GameObject("RightOnFlip", typeof(Image), typeof(Mask));

            (rightOnFlip.transform as RectTransform).pivot    = Vector2.zero;
            rightOnFlip.GetComponent <Mask>().showMaskGraphic = true;
            rightOnFlip.GetComponent <Image>().raycastTarget  = false;
            rightOnFlip.transform.SetParent(book.transform);
            rightOnFlip.SetActive(false);
            GameObject shadow = new GameObject("Shadow", typeof(Image));

            shadow.transform.SetParent(rightOnFlip.transform);
            shadow.GetComponent <Image>().raycastTarget = false;
            shadow.SetActive(false);

            GameObject turnPageFlip = new GameObject("TurnPageFlip", typeof(Image), typeof(Mask));

            turnPageFlip.GetComponent <Mask>().showMaskGraphic = false;
            turnPageFlip.GetComponent <Image>().raycastTarget  = false;
            turnPageFlip.transform.SetParent(book.transform);

            GameObject nextOnFlip = new GameObject("NextOnFlip", typeof(Image), typeof(Mask));

            nextOnFlip.GetComponent <Mask>().showMaskGraphic = false;
            nextOnFlip.GetComponent <Image>().raycastTarget  = false;
            nextOnFlip.transform.SetParent(book.transform);

            GameObject leftHotSpot = new GameObject("LeftHotSpot", typeof(Image), typeof(EventTrigger));

            leftHotSpot.GetComponent <Image>().color = new Vector4(1, 1, 1, 0);
            leftHotSpot.transform.SetParent(book.transform);

            GameObject rightHotSpot = new GameObject("RightHotSpot", typeof(Image), typeof(EventTrigger));

            rightHotSpot.GetComponent <Image>().color = new Vector4(1, 1, 1, 0);
            rightHotSpot.transform.SetParent(book.transform);

            flipPage.left          = left.GetComponent <Image>();
            flipPage.right         = right.GetComponent <Image>();
            flipPage.leftOnFlip    = leftOnFlip.GetComponent <Image>();
            flipPage.rightOnFlip   = rightOnFlip.GetComponent <Image>();
            flipPage.clippingPlane = turnPageFlip.GetComponent <Image>();
            flipPage.nextPageClip  = nextOnFlip.GetComponent <Image>();
            flipPage.shadow        = shadow.GetComponent <Image>();
            flipPage.shadowLTR     = shadowLTR.GetComponent <Image>();
            flipPage.leftHotSpot   = leftHotSpot.GetComponent <Image>();
            flipPage.rightHotSpot  = rightHotSpot.GetComponent <Image>();

            return(book);
        }
示例#4
0
        /// <summary>
        /// Append flip page
        /// </summary>
        /// <param name="backOfLast"></param>
        /// <param name="frontOfNew"></param>
        void AppendFlipPage(WriteableBitmap backOfLast,
                            WriteableBitmap frontOfNew)
        {
            if (_pages.Count == 0)
            {
                var firstpage = new FlipPage { Front = backOfLast, Back = backOfLast };
                var lastpage = new FlipPage { Front = frontOfNew, Back = frontOfNew };
                _pages.Add(firstpage);
                _pages.Add(lastpage);
            }
            else
            {
                var lastpage = _pages.Last();
                lastpage.Back = backOfLast;

                var newpage = new FlipPage { Front = frontOfNew, Back = frontOfNew };
                _pages.Add(newpage);
            }
        }