`
talin2010
  • 浏览: 498946 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

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

阅读更多

打开这个百度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文件当中,这样就能够显示图片的信息了。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics