zoukankan      html  css  js  c++  java
  • silverlight 乐动魔方 实战三 .

    哈,··又来了~

    1、创建一个按钮,content 写上Play Game (这个随你,你写,坑爹吖·· 也行!)

    2、创建一个Canvas容器,显示那个一闪一闪的,,,(为啥不是Image,容器自由度比较大嘛···哈哈)

    3、接着开始想那个一闪一闪的,又在Blend 画不就行了,呵呵·····没错··但这个一闪一闪的···要到后来玩的时候要用的,···都这样画上去显然不科学额,so,这个一闪···还是自己用代码敲上去比较合理,嗯, 其实应该还有更好的,··不过我菜。这能写成这样子了。

    废话少说,。看下面的

    建一个Common类,哈~~~

            /// <summary>
            /// 获取动画
            /// </summary>
            /// <param name="Index"></param>
            /// <param name="Max"></param>
            /// <param name="url"></param>
            /// <param name="style">1:循环 0:不循环</param>
            /// <returns></returns>
            public static ImageSource GetGif( ref int Index, ref int Max, ref bool isHit,string url,int style)
            {
                ImageSource source = null;
                if (Index < Max)
                {
                    source = Common.GetImgSource(url);
                    isHit = true;
                    Index++;
                }
                else
                {
                    if (style == 1)
                    {
                        //循环
                        Index = 0; return null;
                    }
                    else
                    {
                        //不循环 
                        isHit = false; return null;
                    }
                }
                return source;
            }
    
            /// <summary>
            /// 获取图片来源
            /// </summary>
            /// <param name="url"></param>
            /// <returns></returns>
            public static ImageSource GetImgSource(string url)
            {
                ImageSource source = new BitmapImage(GetUri(url));
                return source;
            }
    
            /// <summary>
            /// 获取资源
            /// </summary>
            /// <param name="url"></param>
            /// <returns></returns>
            public static Uri GetUri(string url)
            {
                Uri uri = new Uri(url, UriKind.Relative);
                return uri;
            }

    WPF,silverlight,读取东东都是资源额,···Uri ,so,要改变一下以前··直接Path路径思想,······(如果你直接用Path ···他会弹出拒绝访问··等错误信息额··)

    5、在UserControls文件夹里面创建一个···命名为Hit 的用户控件, 嗯嗯,

    6、设计这个Hit.xaml,其实没啥的··就是定义他的大小和添加一个Image元素。后台才是重点,

    <UserControl x:Class="SilverlightMusicHit.Hit"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d"
        d:DesignHeight="135" d:DesignWidth="135">
        
    <Image Grid.Column="1" Height="135"   HorizontalAlignment="Left" Name="imgHit" Stretch="Fill" VerticalAlignment="Top" Width="135" />
    </UserControl>

    7、编辑后台

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;
    
    using System.Windows.Media.Imaging;
    
    namespace SilverlightMusicHit
    {
        public partial class Hit : UserControl
        {
            #region 变量
            /// <summary>
            /// Hit显示索引,0 bad,1 perfect
            /// </summary>
            public int hitDisIndex = 0;
    
            /// <summary>
            /// 显示类型,1 循环,0 不循环
            /// </summary>
            public int HitStyle = 0;
    
            /// <summary>
            /// Hit点击索引
            /// </summary>
            public bool isHit = false;
    
            /// <summary>
            /// Hit显示速度 /ms
            /// </summary>
            private int speed = 30;
    
            /// <summary>
            /// Hit显示图片数量
            /// </summary>
            private int hitMax = 6;
    
            /// <summary>
            /// Hit显示列表
            /// </summary>
            private string[] hitUrl = { "Image/PicHit/gauge_bad_", "Image/PicHit/gauge_perfect_" };
    
            /// <summary>
            /// 定时器
            /// </summary>
            private Storyboard _timer;
    
            /// <summary>
            /// Hit图片索引
            /// </summary>
            private int hitIndex = 0; 
            #endregion
    
            public Hit()
            {
                InitializeComponent();
    
                //创建定时器
                _timer = new Storyboard();
                _timer.Duration = new Duration(TimeSpan.FromMilliseconds(speed));
                _timer.Completed += new EventHandler(_timer_Completed);
                _timer.Begin();
            }
    
            void _timer_Completed(object sender, EventArgs e)
            {
                string url = string.Format("../{0}{1}{2}", hitUrl[hitDisIndex], hitIndex, ".png");
                imgHit.Source = Common.GetGif(ref hitIndex, ref hitMax, ref isHit, url, HitStyle);
                if (isHit)
                    _timer.Begin();
                else
                    _timer.Stop();
            }
        }
    }

    应该大部份都看得懂吧,···重点是···StoryBoard 这个故事板, 查看MSDN就会发现了,··哈··还是要善于看MSDN吖··很好很强大

    StoryBoard

    为容器的子动画提供对象和属性目标信息的容器时间线。

    Duration 获取或设置此时间线播放的时间长度,而不是计数重复。这是一个依赖项属性。 (继承自 Timeline。)
    Completed 当此时间线完全播放完毕时发生:它将不再进入其活动周期。 (继承自 Timeline。)

    好了··HIT 一闪一闪完成了,··

    按F5运行, 吖。 。 没有?

    别着急,你没错,··其实还没做好的······ (*^__^*) 嘻嘻

    8、回到MainPage编辑后台,在他构造函数里面··写上以下代码

            public MainPage()
            {
                InitializeComponent();
    
                //创建Hit
                Hit hit = new Hit();
                Random rand = new Random();
                hit.hitDisIndex = rand.Next(0, 1);
                hit.HitStyle = 1;
                this.Hit.Children.Add(hit);
            }

    再按F5,额··还没有? 呵呵,··没有图片,当然没有啦,···

    9、在Image文件夹里面再创建个PicHit文件夹,添加以下图片

    http://www.vdisk.cn/down/index/8805162A4337

    呵呵··现在按F5,应该行了吧。嗯嗯··

    name:5+x

    参考文章与书籍:

    WPF葵花宝典

    silverlight2.0 开发技术与精粹

  • 相关阅读:
    【JavaScript从入门到精通】第二课 初探JavaScript魅力-02
    【JavaScript从入门到精通】第一课 初探JavaScript魅力-01
    程序员技术周刊
    【Geek软技能】程序员,为什么写不好一份简历?
    众里寻他千百度?No!这项技术只需走两步就能“看穿”你!
    PornHub 正式发布 AI自动标注色情演员引擎
    9 月份 GitHub 上最火的 JavaScript 开源项目!
    累了吗?来挑战一下算法趣题,看看自己是哪个段位的程序猿吧!
    Chrome 开发者控制台中,你可能意想不到的功能
    现代软件工程 作业 最后一周总结
  • 原文地址:https://www.cnblogs.com/cheng5x/p/2837925.html
Copyright © 2011-2022 走看看