html加载swf,代码模拟点击事件

一、背景

1、最近在做一个android端播放flash的应用,android设备没有屏幕,显示需通过HDMI连接。需要用到javascript与java之间的交互,android端接收flash传过来的fscommand

2、希望通过WebView加载html实现

二、遇到问题

1、通过html加载之后的动画,无论按哪个按键,swf文件都接收不到按键消息,既不能实现它本身的一些操作性功能

2、传过来的命令接收不到(有时间再分析这个,已经解决)

三、尝试方法

1、发现如果直接通过电脑端使用浏览器打开该html,直接敲键盘也是没有效果的,可鼠标点击一下,按键却有效果了

2、没有收到命令,通过添加flash安全沙箱路径即可,当然,你得安装flash player

3、通过猜测觉得应该是WebView开始的时候没有获取到焦点,所以按键事件一直没有捕捉

四、成功解决

1、html加载main.swf

<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd ">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script language="JavaScript" type="text/JavaScript">
var str1 = "hello";
var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
function myFlash_DoFSCommand(command, args)                {
  var myFlashObj = InternetExplorer ? myFlash : document.myFlash;
  if(command == "back"){
	//alert(command);
	doFromCommand(command);
  }else{
	alert(command);
  }
}
if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 &&
  navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -1) {
  document.write('<SCRIPT LANGUAGE=VBScript\> \n');
  document.write('on error resume next \n');
  document.write('Sub myFlash_FSCommand(ByVal command, ByVal args)\n');
  document.write(' call myFlash_DoFSCommand(command, args)\n');
  document.write('end sub\n');
  document.write('</SCRIPT\> \n');
} 

 function doFromCommand(command){
 window.myjs2.runJs2Activity(command);//调用android的函数
 }
</script>
</head>
<body>
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
 codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=11,0,0,0"
 WIDTH="100%" HEIGHT="100%" id="myFlash">
 <PARAM NAME=movie VALUE="main.swf">
 <PARAM NAME=quality VALUE=high>
 <PARAM NAME=bgcolor VALUE=#CCCCCC>
 <param name="allowScriptAccess" value="always" />
 <param name="allowNetworking" value="all">
 <param name="allowFullScreen" value="true">
 <EMBED src="main.swf" quality=high bgcolor=#CCCCCC  WIDTH="100%" HEIGHT="100%" NAME="myFlash" swLiveConnect="true" allowScriptAccess="always" allownetworking="all" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED>
</OBJECT>
 <div id="show" style="color:#000000;font-size:30px;margin-left:50px" ></div>

</body>
</html>

其中:

WIDTH="100%" HEIGHT="100%"

这个是根据设备撑满屏幕,针对在不同分辨率不同屏幕大小的设备来说,该属性是必不可少的

2、模拟点击事件,可在html加载成功之后加入下面代码

mWebView.dispatchTouchEvent(MotionEvent.obtain(
				SystemClock.uptimeMillis(), SystemClock.uptimeMillis(),
				MotionEvent.ACTION_DOWN, mWebView.getLeft() + 5,
				mWebView.getTop() + 5, 0));
		mWebView.dispatchTouchEvent(MotionEvent.obtain(
				SystemClock.uptimeMillis(), SystemClock.uptimeMillis(),
				MotionEvent.ACTION_UP, mWebView.getLeft() + 5,
				mWebView.getTop() + 5, 0));

3、android端添加安全路径,到此为止已可实现想要的效果

html加载swf,代码模拟点击事件

时间: 2024-08-10 22:48:03

html加载swf,代码模拟点击事件的相关文章

目录树加载并绑定右键点击事件

1 using System.Collections; 2 using System.Drawing; 3 using System.IO; 4 using System.Linq; 5 using System.Windows.Forms; 6 7 namespace menuTreeWITHrightMouseClick 8 { 9 public partial class Form1 : Form 10 { 11 string strRootFolderPath = @"D:\CODE&q

JavaScript之jQuery-4 jQuery事件(页面加载后执行、事件处理、事件冒泡、事件对象、模拟操作)

一.jQuery 页面加载后执行 代码执行的时机选择 - $(document).ready()方法和 window.onload事件具有相似的功能,但是在执行时机方面是有区别的 - window.onload 事件是在网页中所有的元素(包括元素的所有关联文件)完全加载到浏览器后才执行 - $(document).ready()方法注册的事件处理程序,在DOM完全加载后就可以调用 - 一般来讲, $(document).ready()的执行要优于window.onload事件 - 需要注意的是,

动态加载JS代码

到处查资料研究js动态脚本的加载,找到以下7种方法,总有一种适合你! 首先我们需要一个被加载的js文件,我在一个固定文件夹下创建了一个package.js,打开后在里面写一个方法functionOne,很简单,代码如下: function functionOne(){ alert("成功加载"); } 后面的html文件都创建在同一个目录下. 方法一:直接document.write 在同一个文件夹下面创建一个function1.html,代码如下: <html> <

iOS 利用webView加载html代码,在代理中获取html页面的链接时出现的问题

getDetailWebview.loadHTMLString(webViewData as String, baseURL:NSURL(string: "\(ProBaseWeb)")) 当用webView的loadHEMLString方法加载html代码时,必须设置baseURL,否则执行代理方法获取页面链接URL时得到的URL会在前部自动天剑如下字段: applewebdata://C97726ED-D607-4CD6-A49C-A86E8598E421/:如果获取的url是一个

[ActionScript 3.0] 如何控制加载swf动画的播放与暂停

此方法适用于用as 1.0或者as2.0以及as3.0编译的swf,因为as1.0和as2.0编译的swf是AVM1Movie类型,因此需要通过类ForcibleLoader.as将其转换为version 9以上的swf,注意,如果加载的swf是3.0代码编译的,且此swf用文档类编译,则文档类必须继承MovieClip,接下来看代码: 首先写一个加载swf的类SwfPlayer.as: 1 package com.views 2 { 3 import com.controls.utils.Fo

js模拟点击事件实现代码

js模拟点击事件实现代码 更新时间:2012年11月06日 17:33:33   作者:   我要评论 在实际的应用开发中,我们会常常用到JS的模事件,比如说点击事件,举个简单的例子,点击表单外的“提交”按钮来提交表单.上代码吧 html: 复制代码 代码如下: <h3>请单击“提交”,测试提交按钮的单击事件也被触发了.</h3> <button id="btn">提交</button> <form action="#&q

加载歌词代码

ios 开发 学习记录 编写音乐播放器: 获取歌词的思路 : 加载歌词: 歌词加载方法: //此方法是通过路径拿到歌词将其取出 NSString *lrcPath(自己定义的字符串变量名) = [[NSBundle mainBundle] pathForResource: 歌曲数组[索引] ofType:@"lrc"];//歌词格式 //此方法是将歌词的格式转换成Xcode支持的格式 NSString *contentStr = [NSString stringWithContents

延时加载js代码提高速度

延时加载js代码提高速度:如果网页中存在大量的javascript代码会极大的影响网页的访问速度,下面就简单介绍一下如何处理此问题.一.延时加载js文件:可以使用定时器函数setTimeout()让外部的js文件延迟加载,例如: <script type="text/javascript" src="" id="my"></script> <script type="text/javascript"

iOS开发网络篇 —— OC加载HTML代码

html代码 图1 样式一:"<p><img src=\"/upload/image/20170609/1496978712941664.jpg\" title=\"1496978712941664.jpg\" alt=\"7.jpg\"/>测试内容信息无错</p>" 样式二:<h1 style=\"font-size: 32px; font-weight: bold; bo