event

事件等待(@event与wait(event.triggered))

别来无恙 提交于 2019-12-06 15:10:58
1、@event有竞争问题 program test; event e1; initial begin #10 ->e1; end initial begin #10 @e1; $display("hello"); end endpropram 在这个例子中,事件的触发(->e1)和事件的检测(@e1)都是在10ns的时候发生,这个时候就有竞争问题,看那个进程先执行(一般是上部分的代码先执行),这样就会导致有的时候能够检测到事件,输出"hello",有的时候则不能检测到。 2、wait(event.triggered)没有竞争问题 program test; event e1; initial begin #10 ->e1; end initial begin #10 wait(e1.triggered); $display("hello"); end endpropram 同样是事件的触发(->e1)和事件的检测(@e1)都是在10ns的时候发生,但是这个时候没有竞争问题,event.triggered可以检测到当前触发的事件,所以一定会输出hello。 来源: https://www.cnblogs.com/yuandonghua/p/11991956.html

tcbRouter

风格不统一 提交于 2019-12-06 13:45:41
tcb-router 基于koa风格的 小程序·云开发云函数 轻量级类 路由库 ,主要用于 优化 服务端函数处理逻辑 安装 在 云函数当前目录 下安装: npm install --save tcb-router 使用 const tcbRouter = require ('tcb-router'); exports.main = async ( event , context) => {   const app = new tcbRouter( { event } ) ; // event对象中包含了请求的所有参数(包括 $url ) + userInfo( appId(小程序)+openId(用户的) )   //路由1--detail ( $url=='detail' )     //获取博客详情      app.router ('detail', async (ctx, next)=>{        //可获取请求中的参数       let blogId = event .blogId;        //通过赋值给ctx.body来返回响应结果        ctx.body = XXXX;     })    //路由2   。。。    //路由3   。。。    return app . serve ( ) ; // 必须以此句结束 }) event对象

AS3放大镜工具类

浪子不回头ぞ 提交于 2019-12-06 12:36:51
package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.DisplayObject; import flash.display.DisplayObjectContainer; import flash.display.Sprite; import flash.geom.Point; import flash.geom.Rectangle; import flash.ui.Mouse; import flash.events.Event; import flash.events.MouseEvent; import flash.filters.DropShadowFilter; public class MagGlass extends Sprite { private const MAXSIZE :uint = 2880; private var _zoom :Number; private var _zoomSmall :Number; private var _imageW :Number; private var _imageH :Number; private var _imageBitmap :Bitmap; private var

[前端][自定义DOM事件]不使用setTimeout实现双击事件或n击事件

非 Y 不嫁゛ 提交于 2019-12-06 12:24:04
使用setTimeout实现双击事件 例如,这样: let div = document.getElementById("div"); doubleClick(div, function (event) { console.log('双击') }) function doubleClick(ele, fn) { // 省略参数合法性的判断 let event = new Event("doubleClick"); // 自定义双击事件(可以使用CustomEvent携带数据) // 双击事件监听 ele.addEventListener("doubleClick", function (event) { fn(event); }); // 双击事件触发 let timeout; let clicked = false; // 是否已经点击过一次 ele.addEventListener("click", function () { if (clicked) { clicked = false; if (timeout) { clearTimeout(timeout); } ele.dispatchEvent(event); // 事件分发 } else { clicked = true; timeout = setTimeout(function () { clicked =

jquery bind()方法 语法

你。 提交于 2019-12-06 10:32:43
jquery bind()方法 语法 作用: bind() 方法为被选元素添加一个或多个事件处理程序,并规定事件发生时运行的函数。 说明: 规定向被选元素添加的一个或多个事件处理程序,以及当事件发生时运行的函数。 直线电机生产厂家 语法: $(selector).bind(event,data,function) 参数: 参数 描述 event 必需。规定添加到元素的一个或多个事件。由空格分隔多个事件。必须是有效的事件。 data 可选。规定传递到函数的额外数据。 function 必需。规定当事件发生时运行的函数。 替代语法: $(selector).bind({event:function, event:function, ...}) 参数: {event:function, event:function, ...} 必需。规定事件映射,其中包含一个或多个添加到元素的事件,以及当事件发生时运行的函数。 jquery bind()方法 示例 <html> <head> <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script> <script type="text/javascript"> $(document).ready

H5拖拽事件-- 自定义创建a标签热区

早过忘川 提交于 2019-12-06 10:25:49
有两个BUG未更正, 1.拖拽后,动态创建的div始终在鼠标的下方,导致拖拽定位不准确 2.当窗口为自适应时,定位left为百分比,窗口改变大小时会存在定位偏差 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="./jquery-1.11.3.min.js"></script> <style> #zt{ position: relative; } .div01{ width: 100px; height: 100px; position: fixed; top: 0; left: 50%; border: 1px solid; } .test{ width: 10px; height: 10px; overflow: hidden; cursor: se-resize; position: absolute; right: 0; bottom: 0; background-color: #000000; } .div01.boder{ border:3px solid; } .warp{ width: 100%; overflow: hidden; } </style> </head> <body> <div id="zt">

vue监听键盘回车事件--Enter

独自空忆成欢 提交于 2019-12-06 09:55:12
vue监听键盘回车事件--Enter 方法一:keyup.enter vue文档提供了一种按键修饰符的方法: < input v-on:keyup.enter= "submit"> (keyCode事件已经被废弃),这种方法的使用前提是使用的当前元素必须要获取focus焦点,如果没有获取到焦点,绑定就会失效,因此给div或者p进行事件监听时,这种方法显示是不适用的; 方法二:document.addEventListener监听keyup事件 这种方法对任何元素都有效,不必须获取focus。但应该注意的是,跳出当前组件时一定要销毁监听。 mounted() { // 绑定enter事件 this.enterKeyup(); }, destroyed() { // 销毁enter事件 this.enterKeyupDestroyed(); }, methods: { enterKey(event) { const componentName = this.$options.name; if (componentName == "Login") { const code = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; if (code == 13) { this.login();

Android外接USB扫码枪

左心房为你撑大大i 提交于 2019-12-06 07:53:35
公司的设备以前接入的都是串口的扫码头,优点是直接通过串口读取流里面的数据就OK了,缺点是你需要知道每一款扫码器的型号以获取波特率及Android设备的串口地址。因为现在usb扫码器越来越方便且即插即用,不需要额外供电以及价格便宜等特点,公司以后开发的设备都打算采用usb扫码器。所以我开始尝试接入usb扫码器,下面就是我在接入时的方法以及遇到的一些问题。 1. USB扫码器接入 前面我有说过,usb扫码器接入方便,即插即用,但是有个很大的坑,因为它的实质其实就是相当于设备的外接键盘,也就是它必须在有光标的地方才能进行扫码,且是直接把扫到的内容自动输入到输入框中,并不受我们的控制。但是我们在很多时候并不需要一个edittext的输入框的,而这时要么就是重新改设计,要么就是我们自己想办法解决这个问题。 最开始的时候我是利用1个宽高都为1px的Edittext作为扫码头的接收器,并且让它自动获取焦点,这样我们就能实时地获取到扫码头传过来的数据了。但是这种方法并不能作为一个通用的方法,且每个项目都不能复用,还会和我们页面中其它Edittext输入框冲突,这个方法也就被我弃用了。 接下来说到的就是我现在用到的方法,我们知道,USB扫码器实质就是一个外接键盘,那么我们可不可以对它进行键盘的输入拦截呢,安卓系统中有这么个方法 dispatchKeyEvent(KeyEvent event)

js事件

谁说我不能喝 提交于 2019-12-06 07:40:51
Javascript 事件 : 1 事件源 2 事件 3 事件程序 Javascript 是基于事件驱动的一种程序 , 所有的特效都是基于事件来进行触发的 . 行为 = 事件 + 动作 一 事件源 [ 任何一个 html 元素 ( 节点 ), 如 body,div,button,p,a,h1……] 二 事件 [ 用户操作 ] on + 事件 鼠标 : click 是在鼠标点击弹起之后触发的事件 dbclick mouseover mouseout mousedown onmousedown 事件则是在鼠标按键按下去的瞬间触发的 mouseup 鼠标抬起 mousemove 鼠标移动 drag 按住鼠标拖动 键盘 : Keypress 键盘事件 Keyup 抬起 Keydown 按下 文档 : load 加载 onload unload 关闭 beforeunload 关闭之前 表单 : focus 获取焦点事件 blur 失去焦点事件 例如 : onfocus="this.value=''" onblur="this.value='please input username'" submit 提交事件 <input type=”submit” value=”” /> change 改变事件 当控件内容改变时用到 , 例如 <select></select> 其它 : Scroll

LiveData使用

走远了吗. 提交于 2019-12-06 06:30:09
### Andorid LiveData 使用 [[_TOC_]] #### Lifycycle 使用 1、继承FragmentActivity 实现LifecycleOwner接口 2、声明一个LifecycleRegistry对象,用于标记Activity的相应声明周期状态,并再相应生命周期改变的时候通过handleLifecycleEvent分发相应的事件。 3、通过传递一个Activity的LifecycleRegistry 对象,来监听相应的生命周期变化 * 示例 ``` public class LifycycleActivtiy extends AppCompatActivity implements LifecycleOwner { LifecycleRegistry lifecycleRegistry; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); lifecycleRegistry=new LifecycleRegistry(this::getLifecycle); lifecycleRegistry.markState(Lifecycle.State.CREATED);