突发:华沙1处公馆产生枪击 致二死一伤

  ​依据澳大圣克Russ(Australia)媒体二三十日时尚电视发表,雅加达东北边1处公馆爆发枪击事件,形成4个人谢世,1人受到损伤。近来警察方曾经达到现场,但事件原因不详。(报社记者王聪)

原生js–事件类型

 

1、表单事件:

submit事件

reset事件

click事件

change事件

focus事件(不冒泡) (IE和ES5扶助冒泡的focusin)

blur事件(不冒泡) (IE和ES伍帮助冒泡的focusout)

input事件(ES伍 textinput提供更有益的获得输入文字的方案)

 

2、Window事件

load事件

DOMContentLoaded事件

readyStatechage事件

unload事件

beforeunload事件

resize事件

scroll事件

 

3、鼠标事件

click事件

dbclick事件

mouseover事件(冒泡)

mouseout事件(冒泡)

mousedown事件

mouseup事件

contextmenu事件

mouseenter事件(不冒泡)

mouseleave事件(不冒泡)

mousewheel事件(FF DOMMouseScroll事件、DOM3 wheel事件)

 

四、键盘事件

keydown事件

keyup事件

keypress事件

5、进程事件


结语

本篇小说分析了Android事件分发机制之Button的OnTouch事件,为了便利读者领会,只需求牢记down事件再次回到值标志本次风云是不是为点击事件(重临false,是点击事件;重回true,不记为点击事件),而up事件标识此次事件截至时间这一个关键点就好了。

9.5、cut事件,copy事件,paste事件

以下四个事件属于文本操作触发的风云。

  • cut事件:在将当选的剧情从文书档案中移除,出席剪贴板后触发。
  • copy事件:在当选的内容参与剪贴板后触发。
  • paste事件:在剪贴板内容被粘贴到文书档案后触发。

二 . onTouch返回true

①.首先是onTouch事件的down事件发生,然后是onTouch事件的up事件时有爆发;
2.期间不触发onClick和onLongClick事件

日志:

图片 1

不长按.png

图片 2

长按.png

壹、鼠标事件


鼠标事件指与鼠标相关的风云,首要有以下部分。

基础知识:

一.本篇篇章就不分析晦涩难懂的源码了(加上源码后文章内容太长,提出有耐心的读者自个儿查看源码来说明小说的分析结果)。在此间透过轻巧的代码直接打字与印刷日志让您清晰的认识Button的OnTouch事件传递机制(和onClick,onLongClick事件时有发生先后顺序)。
二.在onTouch事件中:down事件重回值标识本次事件是或不是为点击事件(再次来到false,是点击事件;再次来到true,不记为点击事件),而up事件标识此次风浪截至时间,也正是判别是还是不是为长按。

4、键盘事件


一 . onTouch返回false

1.首先是onTouch事件的down事件产生,此时,借使长按,触发onLongClick事件;
二.然后是onTouch事件的up事件发生,up达成,最后触发onClick事件。

日志:

图片 3

不长按.png

图片 4

长按.png

1.4、mouseout事件,mouseleave事件

mouseout事件和mouseleave事件,都是鼠标离开三个节点时接触。

互相的区分是,mouseout事件会冒泡,mouseleave事件不会。子节点的mouseout事件会冒泡到父节点,进而触发父节点的mouseout事件。mouseleave事件就不曾那种功效,所以离开子节点时,不会触发父节点的监听函数。

三 . onTouch:down重回true,up重临false:结果同二

一.第三是onTouch事件的down事件时有发生,然后是onTouch事件的up事件产生;
二.以内不触发onClick和onLongClick事件

日志:

图片 5

不长按.png

图片 6

长按.png

建制分析:

  1. onTouch事件中:down事件重返值标志本次风浪是或不是为点击事件(再次回到false,是点击事件;重回true,不记为点击事件),

  2. 而up事件标识此番风浪甘休时间,也便是判别是还是不是为长按。

三.只要当down再次来到true时候,系统将不把本次事件记录为点击事件,也就不会触发onClick可能onLongClick事件了。

4.据此就算当up的时候回来false,系统也不会接二连三触发onClick事件了。

2.1、概述

四 . onTouch:down返回false,up返回true:

1.第一是onTouch事件的down事件爆发,此时:
2.长按,触发onLongClick事件,然后是onTouch事件的up事件时有发生,完结。
三.短按,先触发onTouch的up事件, 到自然时间后,自动触发onLongClick事件。

日志:

图片 7

不长按.png

图片 8

长按.png

建制分析:

  1. onTouch事件中:down事件重返值标志本次事件是不是为点击事件(重返false,是点击事件;重返true,不记为点击事件),

  2. 而up事件标识本次事件甘休时间,也正是剖断是不是为长按。

3.只要当down再次来到true时候,系统将把本次事件记录为点击事件,而up再次来到了true,表示一贯未曾达成,一贯长按中,也就不会触发onClick事件了。

源代码:

package com.example.h.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    private final String  TAG = MainActivity.class.getSimpleName();
    private Button bntTest1,bntTest2,bntTest3,bntTest4;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bntTest1 = (Button) findViewById(R.id.bnt_test1);
        bntTest2 = (Button) findViewById(R.id.bnt_test2);
        bntTest3 = (Button) findViewById(R.id.bnt_test3);
        bntTest4 = (Button) findViewById(R.id.bnt_test4);

        bntTest1.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                Log.e(TAG,"--bntTest1--onOnLongClick()触发----");
                return false;
            }
        });
        bntTest1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.e(TAG,"--bntTest1---onClick()触发----");
            }
        });
        bntTest1.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
               // Log.e(TAG,"--bntTest1---MotionEvent触发----"+event.getAction());
                switch (event.getAction()){
                    case MotionEvent.ACTION_DOWN:
                        Log.e(TAG,"--bntTest1---MotionEvent.ACTION_DOWN:触发----");
                        break;
                    case MotionEvent.ACTION_UP:
                        Log.e(TAG,"--bntTest1---MotionEvent.ACTION_UP:触发----");
                        break;
                }
                return false;
            }
        });


        bntTest2.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                Log.e(TAG,"--bntTest2--onOnLongClick()触发----");
                return false;
            }
        });
        bntTest2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.e(TAG,"--bntTest2---onClick()触发----");
            }
        });
        bntTest2.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()){
                    case MotionEvent.ACTION_DOWN:
                        Log.e(TAG,"--bntTest2---MotionEvent.ACTION_DOWN:触发----");
                        break;
                    case MotionEvent.ACTION_UP:
                        Log.e(TAG,"--bntTest2---MotionEvent.ACTION_UP:触发----");
                        break;
                }
                return true;
            }
        });

        bntTest3.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                Log.e(TAG,"--bntTest3--onOnLongClick()触发----");
                return false;
            }
        });
        bntTest3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.e(TAG,"--bntTest3---onClick()触发----");
            }
        });
        bntTest3.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()){
                    case MotionEvent.ACTION_DOWN:
                        Log.e(TAG,"--bntTest3---MotionEvent.ACTION_DOWN:触发----");
                        return true;
                    case MotionEvent.ACTION_UP:
                        Log.e(TAG,"--bntTest3---MotionEvent.ACTION_UP:触发----");
                       return false;
                }
                return false;
            }

        });

        bntTest4.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                Log.e(TAG,"--bntTest4--onOnLongClick()触发----");
                return false;
            }
        });
        bntTest4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.e(TAG,"--bntTest4---onClick()触发----");
            }
        });
        bntTest4.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()){
                    case MotionEvent.ACTION_DOWN:
                        Log.e(TAG,"--bntTest4---MotionEvent.ACTION_DOWN:触发----");
                      return false;
                    case MotionEvent.ACTION_UP:
                        Log.e(TAG,"--bntTest4---MotionEvent.ACTION_UP:触发----");
                       return true;
                }
                return false;
            }
        });
    }
}

1.2、mouseup事件,mousedown事件,mousemove事件

mousedown事件在按下鼠标键时接触。
mouseup事件在出狱按下的鼠标键时触发。
mousemove事件当鼠标在3个节点内部移动时接触。当鼠标持续运动时,该事件会再3再四触发。为了幸免质量难题,建议对该事件的监听函数做1些范围,比如限制一段时间内只可以运营3次代码。

项目地址

https://github.com/ruanjiankeji/ButtonEventAnalysis

如有不足,欢迎小伙伴指正,互相学习;倘使以为还足以,欢迎小说star恐怕github上star、follow

相关文章