flash 与分解:分解百度MP3图片墙

来源:互联网 发布:java添加按钮监听器 编辑:程序博客网 时间:2024/05/16 19:51

 打开这个百度MP3网站 http://mp3.baidu.com/ 下面可以看到一个flash相关的图片墙,这个图片墙能够显示歌手或者其他活动的信息,是一个实用的flash。flash显示了歌手的信息,当鼠标滚动的时候能够显示出相应的图片信息。

 

 

 我们采用捕捉swf的软件,可以轻松下载这个flash,然后使用一下flash分解软件就能够看到内部相应的情况,但是一般来讲flash分解后能够正常显示是一个很不错的结果,不过大部分flash分解后的flash 源文件都很多错误,编译之后,依旧需要进行排错和纠正。

 接下来就是进行排错了,破解出来的源码,变量名的显示都不是原本的含义,尽管有时候能够编译通,不过看起来十分吃力,违背了原来的含义。(变量名变化,颜色值会变化,参数会变化等等)

   经过一些简单处理工作后,得到了下面的源码。这个源码值得学习的是数据的交互。本身的swf只是一个数据的容器,为了能够获取到数据,那么swf需要到浏览器里面进行获取数据。

 

  关于这个flash 是如何获取数据? 其实这个分解后的flash是采用js结合方式返回一个xml数据的,不需要额外建一个xml的数据文件,大大方便了数据读取。

 

       flash----->js  ,flash获取js返回的xml数据。

 

 破解后的flash 主要有两个类,一个是PhotoItem.as(用于显示图片) ,另外一个是PhotoWall.as 文件(主文件),其他的是缓冲的类,借助两个类就实现这种图片墙的效果。

 

 好,现在粘贴经过改过后的flash类库可以运行。有兴趣可以尝试这种分解玩意,过程非常有趣。可以学习一下数据交互。

当中import laan.smart.tween.* 这个类库可以采用Tweener类来替代。

 

 

 

 

 

 

 

使用这个类 还不行的,因为要获取到网页当中的js 返回的xml 数据,所以我们通过查看网页的js文件可以发现到数据的来源。

 

data=ExternalInterface.call("getPhotoWallData"); 通过这个函数返回字符串信息内容,这样经过分析后,内容就能够正常显示了。

不妨试试玩一下。

 

最后,把编译出来的swf 和html放在一起,为了能够显示信息,顺便查看百度网页的里面的js文件,把js文件添加到生成的html文件当中,这样就能够显示图片的信息了 。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

原创粉丝点击