【学习平台源码】【js 日历源码】【买卖链源码】action源码

时间:2024-11-13 15:49:52 来源:群晖跑源码 分类:休闲

1.Vuex- Action的源码 { commit }写法
2.请教网页程序代码高手!
3.Action<SmsData> addData = d => SmsService.AddData(d); 如何理解?
4.编程所写的源码代码 是如何变成游戏的?
5.MotionEvent的getAction、getActionMask和getActionIndex的区别

action源码

Vuex- Action的 { commit }写法

       Vuex 中 使用 Action 处理异步请求时,常规写法如下:

        我们也可以使用如下简化写法,源码如下:

        我们可以看看 Vuex 中 注册 Action的源码学习平台源码源码如下:

        例如变量常规写法:

        使用变量解构赋值后{ commit }的commit = context.commit 了

请教网页程序代码高手!

       <html>

       <head>

       <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

       <title>这里是源码标题</title>

       </head>

       <body>

       <form method="POST" action="$action" id="myform"> <!--这里要加id="myform"-->

              <input type="hidden" name="mode_login">

               <input type="hidden" name="redirect" value="$redirect">

                <input type="hidden" name="accept_terms" value="yes">

                 <button type="submit" value="Submit">确认</button>

        </form>

        </body>

       <script language="javascript" type="text/javascript">

       (function(){

       document.getElementById("myform").submit();

       })();

       </script>

       </html>

       一旦加载这个页面就会提交表单数据到$action的地址,如果不想跳转,请用AJAX。源码js 日历源码

Action<SmsData> addData = d => SmsService.AddData(d); 如何理解?

       å…ˆæ‹†è§£å¦‚下:

       d => SmsService.AddData(d); //转换下

       public void temp(SmsData d)

       {

        SmsService.AddData(d);

       }

       ä¸è€ƒè™‘线程安全,再次翻译:

        Action<SmsData> addData = temp;

        addData(obj);

       public void temp(SmsData d)

       {

        SmsService.AddData(d);

       }

       çœç•¥äº†ä¸€ä¸ªå‡½æ•°ï¼Œç”¨Lamada表达式写的 这种写法很长见 后面你在编程的时候能看到不少

       è¿™ä¸ªæ˜¯ä¸€ä¸ªå§”托,在使用 Action<T> 委托时,不必显式定义一个封装只有一个参数的方法的委托。

       å®šä¹‰ï¼š

       public delegate void Action<in T>(T obj)//理解成泛型的。

       DEMO:

       using System;

       using System.Windows.Forms;

       public class TestAction1

       {

        public static void Main()

        {

        Action<string> messageTarget;

        if (Environment.GetCommandLineArgs().Length > 1)

        messageTarget = ShowWindowsMessage;

        else

        messageTarget = Console.WriteLine;

        messageTarget("Hello,源码 World!");

        }

        private static void ShowWindowsMessage(string message)

        {

        MessageBox.Show(message);

        }

       }

编程所写的代码 是如何变成游戏的?

       人能识别有意义的字母、数字组合,源码就是源码代码。电脑机器只能识别0和1的源码二进制数字组合。人写的源码代码不能直接被电脑识别,需要一个翻译的源码过程,这个过程叫"编译",源码买卖链源码把对人有意义的源码代码转换为对电脑有意义的二进制码。

       你看到的源码游戏画面是电脑理解了这些二进制码之后的结果。电脑根据二进制码来进行游戏图像渲染、公告页源码处理玩家的键盘鼠标操作信息。

       举个简单的例子吧,假设人写的易物源码代码如下:

       Action

       action

       =

       drawCar();

       boolean

       goLeftBool

       =

       getInputLeftArrow();

       if(goLeftBool){

       action.setLocation(action.getLocation().getX()--,

       action.getLocation().getY());

       }这段代码大概意思是:画辆车,玩家按左,车往左走。编译之后形成下面这样的二进制码:

       

       

       

       

       其中每行代表源代码中的一句。就像黑客帝国一样,哈哈。这样电脑才能理解。

       当然,这是个例子而已,真正编译出来的二进制码比这个要多得多!

MotionEvent的getAction、getActionMask和getActionIndex的区别

        在很多自定义View的场景中,都有可能需要重写onTouchEvent、dispatchTouchEvent等方法,这些方法都传入一个MotionEvent对象,一般来说,我们需要通过该MotionEvent对象来获取当前的手势动作,然后判断Action_Down、Action_Move、Action_Up来执行不同的操作逻辑。

        但是当我们看MotionEvent对象时,发现它有getAction、getActionMask和getActionIndex方法,而且在我们看第三方源码时,经常会看到这样的写法:

        同时也会看到这样的写法:

        这两种写法到底有什么区别呢?我们就来说一下MotionEvent的几种获取Action信息的方法。

        Android用一个位的整数值来表示一个TouchEvent事件,低8位表示Touch事件的具体动作,例如按下、抬起、移动等动作。高8位表示Touch事件中多点触控的索引值。

        从源码可以看出getActionMasked = getAction & MotionEvent.ACTION_MASK

        而MotionEvent.ACTION_MASK 是一个常量值,值为0xff,所以getActionMasked方法只保留了低8位的信息,也就是说只保留了触摸的动作信息。

        为什么看第三方源码时,有时候写getAction,有时候写getActionMasked呢?从上面的分析中可以看出来个所以然:

        getAction表示触摸动作的原始位信息,当没有多点触控时,高8位即为0,这个时候getAction == getActionMasked。所以当我们确定我们自定义的View不会使用到多点触控时,就可以直接使用getAction来表示具体的触摸动作。但如果需要使用多点触控,或者是不确定后面会不会使用多点触控,则使用getActionMasked则是最保险的操作,所以我们经常看到下面这两种写法:

        Android中是支持多点触控的,那么在高8位中是如何存储多点触控的索引信息的呢?举个例子来说:

        如果从getAction方法中返回的值是0x,则表示是第一个触控点的ACTION_DOWN操作。高8位是0表示第一个触控点,低8位是0表示ACTION_DOWN操作。

        同理,如果返回值是0x,则表示第二个触控点的ACTION_DOWN操作。

        也就是说,getAction返回值的低8位表示触摸动作的类型信息,而高8位表示触控点的索引信息,也就是哪一个触控点的事件。