html swf 点击跳转,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

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('

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(' \n');

}

function doFromCommand(command){

window.myjs2.runJs2Activity(command);//调用android的函数

}

codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=11,0,0,0"

WIDTH="100%" HEIGHT="100%" id="myFlash">

其中:

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端添加安全路径,到此为止已可实现想要的效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值