网页中flash数据抓取(启动图获取logo链接替换百度logo与重填数据(组图))
优采云 发布时间: 2021-10-15 01:18网页中flash数据抓取(启动图获取logo链接替换百度logo与重填数据(组图))
启动图
获取徽标链接
更换百度标志并填写内容
再次获取徽标链接
更换标志和补充数据
引用官方的话:
StageWebView 类使用一种简单的方法来显示 HTML 内容。此类不提供 ActionScript 和 HTML 内容之间的交互,除非通过 StageWebView 类本身的方法和属性。例如,您不能在 ActionScript 和 JavaScript 之间传递值或调用函数。
================================================== ================================================
----------嗯,官方说法不严谨,其实是可以的。首先要知道浏览器可以通过javascript:这个协议直接运行js代码,也就是说as3可以通过StageWebView。
loadURL() 函数直接运行js;
喜欢:
var myWebView: StageWebView=new StageWebView
......
myWebView.loadURL("javascript:alert(\"浏览器弹出消息内容\")")
这样就可以直接操作当前页面弹出的js消息框:浏览器弹出消息的内容。
myWebView.loadURL("javascript:alert(document.body.innerHTML)")
这样就可以直接弹出当前页面的html代码的数据
同理,你也可以直接用js来操作js函数,html dom,比如在输入框中填信息,点击按钮等。
----------------------以上是调用js的as操作-------------------- --- -------------
那么如何让js回调as3,或者js如何调用as3。
有方法。
StageWebView 的位置属性,该属性有一个事件 LOCATION_CHANGE。
这个事件的目的是什么,就是一旦location属性改变就会触发。
这是关键。使用js修改位置的属性数据主动触发LOCATION_CHANGE事件。
然后as3触发这个事件后,获取StageWebView的位置数据,从而获取js传递过来的数据,
过程如下:
js执行------document.location.pathname="我是js传过来的信息";
然后因为修改了位置数据,会触发as3端的LOCATION_CHANGE,
这时候as3就可以直接获取位置数据了
------------------------------------以上是as3获取js的调用或回调信息- --- -----------------
经过以上激烈的操作,as3和js的双向通信就完成了。
附上一个带有文字说明的fla文件,自己检查一下。
注:本案例以在调试环境下使用Android端为例(网站会根据不同的浏览器系统显示不同的网页,直接在真实页面上会出现不同的网页数据。示例代码不考虑兼容性,需要根据网站的html代码做相应操作)
StageWebView 和 as3 直接通信 value.fla (7.17 KB, 下载: 9, 售价: 150 银币)
2020-2-21 22:57 上传
点击文件名下载附件
as3和StageWebView的互访
分数
参与人数 2银+32金+1贡献+3理由
舞者
+ 2
11RIA上帝是伟大的上帝,佩服佩服
TKCB
+ 30
+ 1
+ 3
11RIA Flash社区,就是这么专业