• 如果OCX使用onmousedown和onmouseup来决定指令发送和指令停止会不会有问题?


    如题:如果使用onmousedown和onmouseup来决定指令发送和指令停止会不会有问题?

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>两个事件之间的时间差</title>
    <script>
    var last=0;
    function myFunction(elmnt,event,clr){
        var d = new Date();
    	var moveIn = d.getTime();
    	console.info(event+" "+moveIn+" cost:"+(last>0?moveIn-last:0));
    	elmnt.style.color=clr;
    	last=moveIn;
    }
    </script>
    </head>
    <body>
    
    <a  onmousedown="myFunction(this,'onmousedown','red')" onmouseup="myFunction(this,'onmouseup','green')">
    单击文本改变颜色。触发一个带参数函数,当鼠标按钮被按下,,当释放鼠标按钮,再一次触发其他参数函数
    </a>
    
    </body>
    </html>
    

     在OCX控件调用上遇到发指令的问题,在一个单独的html上执行没有问题,放到项目里面使用requireJs调用OCX接口播放和录像检索也都OK,唯独云台控制不行,从上面看down和up之间的间隔时间基本在100毫秒左右。

    云台指令:onmousedown下发,onmouseup结束,由于不知道视频SDK服务商的指令实现逻辑为什么要这样处理,所以这个是最大的问题。

     关键点:requireJS 是封装类,而OCX是IE的插件对象,指令走包装过程由于间隔时间太短不能成功发送。

    /* $("#yt_direction_top").on('mousedown',function(){
    	 upstart();
    }); */
    function upstart(){
    	require(['videoStart'],function(video){
    		video.upstart();
    	});
    }
    /* $("#yt_direction_top").on('mouseup',function(){
    	 upstop();
    }); */
    function upstop(){
    	require(['videoStart'],function(video){
    		video.upstop();
    	});
    }
    /* $("#yt_direction_bottom").on('mousedown',function(){
    	 downstart();
    }); */
    function downstart(){
    	require(['videoStart'],function(video){
    		video.downstart();
    	});
    }
    /* $("#yt_direction_bottom").on('mouseup',function(){
    	 downstop();
    }); */ 
    function downstop(){
    	require(['videoStart'],function(video){
    		video.downstop();
    	});
    }
    /* $("#yt_direction_left").on('mousedown',function(){
    	 leftstart(); 
    }); */
    function leftstart(){
    	require(['videoStart'],function(video){
    		video.leftstart();
    	});
    }
    /* $("#yt_direction_left").on('mouseup',function(){
    	 leftstop();
    });  */
    function leftstop(){
    	require(['videoStart'],function(video){
    		video.leftstop();
    	});
    }
    /* $("#yt_direction_right").on('mousedown',function(){
    	 rightstart();
    }); */
    function rightstart(){
    	require(['videoStart'],function(video){
    		video.rightstart();
    	});
    }
    /* $("#yt_direction_right").on('mouseup',function(){
    	 rightstop();
    }); */
    function rightstop(){
    	require(['videoStart'],function(video){
    		video.rightstop();
    	});
    }
    /* $("#yt_zoom_add").on('mousedown',function(){
    	 ZOOMstart();
    }); */
    function ZOOMstart(){
    	require(['videoStart'],function(video){
    		video.ZOOMstart();
    	});
    }
    /* $("#yt_zoom_add").on('mouseup',function(){
    	 ZOOMstop();
    }); */
    function ZOOMstop(){
    	require(['videoStart'],function(video){
    		video.ZOOMstop();
    	});
    }
    /* $("#yt_zoom_reduce").on('mousedown',function(){
    	 REDUCEZOOMstart();
    }); */
    function REDUCEZOOMstart(){
    	require(['videoStart'],function(video){
    		video.REDUCEZOOMstart();
    	});
    }
    /* $("#yt_zoom_reduce").on('mouseup',function(){
    	 REDUCEZOOMstop();
    });  */
    function REDUCEZOOMstop(){
    	require(['videoStart'],function(video){
    		video.REDUCEZOOMstop();
    	});
    }
    /* $("#yt_focus_add").on('mousedown',function(){
    	 FOCUSstart();
    }); */
    function FOCUSstart(){
    	require(['videoStart'],function(video){
    		video.FOCUSstart();
    	});
    }
    /* $("#yt_focus_add").on('mouseup',function(){
    	 FOCUSstop();
    });  */
    function FOCUSstop(){
    	require(['videoStart'],function(video){
    		video.FOCUSstop();
    	});
    }
    /* $("#yt_focus_reduce").on('mousedown',function(){
    	 REDUCEFOCUSstart();
    }); */
    function REDUCEFOCUSstart(){
    	require(['videoStart'],function(video){
    		video.REDUCEFOCUSstart();
    	});
    }
    /* $("#yt_focus_reduce").on('mouseup',function(){
    	 REDUCEFOCUSstop();
    }); */
    function REDUCEFOCUSstop(){
    	require(['videoStart'],function(video){
    		video.REDUCEFOCUSstop();
    	});
    }
    /* $("#yt_aperture_add").on('mousedown',function(){
    	 APERTUREstart();
    }); */
    function APERTUREstart(){
    	require(['videoStart'],function(video){
    		video.APERTUREstart();
    	});
    }
    /* $("#yt_aperture_add").on('mouseup',function(){
    	 APERTUREstop();
    });  */
    function APERTUREstop(){
    	require(['videoStart'],function(video){
    		video.APERTUREstop();
    	});
    }
    /* $("#yt_aperture_reduce").on('mousedown',function(){
    	 REDUCEAPERTUREstart(); 
    }); */
    function REDUCEAPERTUREstart(){
    	require(['videoStart'],function(video){
    		video.REDUCEAPERTUREstart();
    	});
    }
    /* $("#yt_aperture_reduce").on('mouseup',function(){
    	 REDUCEAPERTUREstop(); 
    }); */
    function REDUCEAPERTUREstop(){
    	require(['videoStart'],function(video){
    		video.REDUCEAPERTUREstop();
    	});
    }
    

     不封装的直接是可以的:

    function upstart() {
    		//g_CurChannelID
    		//第二个参数 1 上 1下  2 左 3 右 4 
    		var g_CurChannelID = mini.get("CHANNEL_LIST").getValue();
    		var Res = ocx.PTZControl(g_CurChannelID, 1, 6, 0);
    
    	}
    	function upstop() {
    		var g_CurChannelID = mini.get("CHANNEL_LIST").getValue();
    		var Res = ocx.PTZControl(g_CurChannelID, 1, 6, 1);
    
    	}
    	function downstart() {
    		var g_CurChannelID = mini.get("CHANNEL_LIST").getValue();
    		var Res = ocx.PTZControl(g_CurChannelID, 1, 6, 0);
    
    	}
    	function downstop() {
    		var g_CurChannelID = mini.get("CHANNEL_LIST").getValue();
    		var Res = ocx.PTZControl(g_CurChannelID, 1, 6, 1);
    
    	}
    
    	function leftstart() {
    		var g_CurChannelID = mini.get("CHANNEL_LIST").getValue();
    		var Res = ocx.PTZControl(g_CurChannelID, 2, 6, 0);
    
    	}
    	function leftstop() {
    		var g_CurChannelID = mini.get("CHANNEL_LIST").getValue();
    		var Res = ocx.PTZControl(g_CurChannelID, 2, 6, 1);
    
    	}
    
    	function rightstart() {
    		var g_CurChannelID = mini.get("CHANNEL_LIST").getValue();
    		var Res = ocx.PTZControl(g_CurChannelID, 3, 6, 0);
    	}
    	function rightstop() {
    		var g_CurChannelID = mini.get("CHANNEL_LIST").getValue();
    		var Res = ocx.PTZControl(g_CurChannelID, 3, 6, 1);
    	}
    
    	function ZOOMstart() {
    		var g_CurChannelID = mini.get("CHANNEL_LIST").getValue();
    		var Res = ocx.PTZControl(g_CurChannelID, 8, 6, 0);
    	}
    	function ZOOMstop() {
    		var g_CurChannelID = mini.get("CHANNEL_LIST").getValue();
    		var Res = ocx.PTZControl(g_CurChannelID, 8, 6, 1);
    	}
    	function REDUCEZOOMEstart() {
    		var g_CurChannelID = mini.get("CHANNEL_LIST").getValue();
    		var Res = ocx.PTZControl(g_CurChannelID, 11, 6, 0);
    	}
    	function REDUCEZOOMstop() {
    		var g_CurChannelID = mini.get("CHANNEL_LIST").getValue();
    		var Res = ocx.PTZControl(g_CurChannelID, 11, 6, 1);
    	}
    
    	function FOCUSstart() {
    		var g_CurChannelID = mini.get("CHANNEL_LIST").getValue();
    		var Res = ocx.PTZControl(g_CurChannelID, 9, 6, 0);
    	}
    	function FOCUSstop() {
    		var g_CurChannelID = mini.get("CHANNEL_LIST").getValue();
    		var Res = ocx.PTZControl(g_CurChannelID, 9, 6, 1);
    	}
    	function REDUCEFOCUSEstart() {
    		var g_CurChannelID = mini.get("CHANNEL_LIST").getValue();
    		var Res = ocx.PTZControl(g_CurChannelID, 12, 6, 0);
    	}
    	function REDUCEFOCUSstop() {
    		var g_CurChannelID = mini.get("CHANNEL_LIST").getValue();
    		var Res = ocx.PTZControl(g_CurChannelID, 12, 6, 1);
    	}
    
    	function APERTUREstart() {
    		var g_CurChannelID = mini.get("CHANNEL_LIST").getValue();
    		var Res = ocx.PTZControl(g_CurChannelID, 10, 6, 0);
    	}
    	function APERTUREstop() {
    		var g_CurChannelID = mini.get("CHANNEL_LIST").getValue();
    		var Res = ocx.PTZControl(g_CurChannelID, 10, 6, 1);
    	}
    	function REDUCEAPERTUREstart() {
    		var g_CurChannelID = mini.get("CHANNEL_LIST").getValue();
    		var Res = ocx.PTZControl(g_CurChannelID, 13, 6, 0);
    	}
    	function REDUCEAPERTUREstop() {
    		var g_CurChannelID = mini.get("CHANNEL_LIST").getValue();
    		var Res = ocx.PTZControl(g_CurChannelID, 13, 6, 1);
    	}
    
    	function startTalk() {
    		var g_CurChannelID = mini.get("CHANNEL_LIST").getValue();
    		var Res = ocx.TalkControl(g_CurChannelID, 0);
    	}
    
    	function stopTalk() {
    		var g_CurChannelID = mini.get("CHANNEL_LIST").getValue();
    		var Res = ocx.TalkControl(g_CurChannelID, 1);
    	}
    
  • 相关阅读:
    Oracle 数据库 用脚本建表空间
    C++ 类中封装Win32API的回调函数
    在MVC 4 中使用自定义Membership
    机试题目
    sscanf()
    字符串转化为整数
    有序数组中一对数的和为特定数
    把一个数组划分成左边奇数右边偶数
    cocos2dx将背景色改为白色
    字符串单词翻转
  • 原文地址:https://www.cnblogs.com/boonya/p/12398767.html
Copyright © 2020-2023  润新知