`

SWFObject v1.5的对象结构

阅读更多

1 SWFObject v1.5的对象结构

deconcept
    util
        getRequestParameter(_2b) // 取得url参数value。_2b是URL的key。
    SWFObjectUtil
        getPlayerVersion() // 取得版本号对象。major.minor.rev。
        cleanupSWFs() // 清除页面上所有<OBJECT>元素。
    SWFObject(_1, id, w, h, _5, c, _7, _8, _9, _a)
                                   // _1: swf,指定SWF文件路径。
                                   // _id: id,<embed>或者<object>标签的id。
                                   // w: width,属性width。
                                   // h: height,属性height。
                                   // _5: version,flash版本,默认自动会去读取本地的flash插件版本的。
                                   // c: bgcolor,背景色。
                                   // _7: quality,品质(low, high, autolow, autohigh, best ) 。
                                   // _8: xiRedirectUrl
                                   // _9: redirectUrl
                                   // _a: url参数key
        useExpressInstall(_d) // 设置xiSWFPath, useExpressInstall属性
        setAttribute(_e, _f) // 设置属性attributes。_e是key,_f是value。
        getAttribute(_10) // 取得属性attributes中的值。_10是key。
        addParam(_l1, _l2) // 设置参数params。_l1是key,_l2是value。
        getParams() // 取得params。
        addVariable(_l3, _l4) // 设置变量variables。_13是key,_14是value。
        getVariable(_l5) // 取得变量variables中的值。
        getVariables() // 取得变量variables。
        getVariablePairs() // 取得变量variables的key=value对数组。
        getSWFHTML() // 返回flash嵌入的HTML
                     // 例如:
                     // <embed type="application/x-shockwave-flash"
                     // src="/amchart/amchart/amcolumn/amcolumn.swf"
                     // width="520" height="380"
                     // style="undefined"
                     // id="amcolumn" name="amcolumn"
                     // bgcolor="#FFFFFF"
                     // quality="high"
                     // flashvars="path=/amchar/amchar/amcolumn/&settings_file=amcolumn_settings.xml&data_file=amcolumn_data.txt&preloader_color=#000000"/>
        write(_20) // 写入flash插入的位置。_20可以是id的名称或者是一个dom结点。
    PlayerVersion(_29) // 创建版本号对象。
        versionIsValid(fv) // 验证flash插件的当前版本号是否兼容fv的版本号(大于等于)。

getQueryParamValue = deconcept.util.getRequestParameter;
FlashObject = deconcept.SWFObject;
SWFObject = deconcept.SWFObject;

2 数据文件
支持csv、xml格式。
csv实际上是一个文本文件,而非excel文件,所以,可以直接使用文本文件来命名。
每一列的数据采用“;”或“,”分隔都可以。
例如:
// amcolumn_data.txt
2003;2.5
2004;4.6
2005;5.8
2006;3.8
2007;4.8
2008;6.8
2009;7.8

3 配置文件
例如:
// amcolumn_settings.xml
<?xml version="1.0" encoding="UTF-8"?>
<settings>
   <!-- chart config -->
   <data_type>csv</data_type>                                                     <!-- [xml] (xml / csv) -->
   <digits_after_decimal>2</digits_after_decimal>
   <legend>
      <enabled>false</enabled>
   </legend>
   <!-- plugin config -->  
   <plugins>
    <!-- value indicator plugin is suitable for line chart, column chart & xy chart -->
    <plugin file="/amchart/amchart/amcolumn/plugins/value_indicator.swf" position="above">      <!-- file should be located in "path" folder. position can be "behind" or "above". "behind" means that the plugin will be loaded behind graphs -->
      <chart_type>column</chart_type>                                             <!-- [line] (line / column / xy) this plugin can be used with line or with column chart -->
      <axis></axis>                                                               <!-- [left] (left / right / x / y) if used with line chat use left or right, if used with xy chart, use x or y -->
      <line_color>#000000</line_color>                                            <!-- [#BBBB00] (hex color code) -->
      <line_alpha></line_alpha>                                                   <!-- [100] (0 - 100) -->
      <text_color>#000000</text_color>                                            <!-- [settings.text_color] -->
      <text_size>13</text_size>                                                   <!-- [settings.tex_size] -->
      <precision>2</precision>                                                    <!-- [0] (Number) how many numbers after comma should be shown -->
    </plugin>
  </plugins>
</settings>

4 在HTML上显示
<body>
<!-- saved from url=(0013)about:internet -->
<!-- amcolumn script-->
 <div id="flashcontent">
  <strong>You need to upgrade your Flash Player</strong>
 </div>

 <script type="text/javascript">
  // <![CDATA[ 
  var so = new SWFObject("/amchart/amchart/amcolumn/amcolumn.swf", "amcolumn", "520", "380", "8", "#FFFFFF"); // 创建SWFObject对象
  so.addVariable("path", "/amchart/amchart/amcolumn/"); // 暂时不是很清楚,破解时用到了这个属性。既然,例子写了,我们也写好了。
  so.addVariable("settings_file", encodeURIComponent("amcolumn_settings.xml")); // 配置文件
  so.addVariable("data_file", encodeURIComponent("amcolumn_data.txt")); // 数据文件
  so.addVariable("preloader_color", "#000000"); // 加载时显示的颜色
  so.write("flashcontent"); // 在flashcontent位置写入flash插入的HTML
  // ]]>
 </script>
<!-- end of amcolumn script -->
</body>

5 破解amchart
没有破解的amchart显示的时候在左上角会出现“chart by amCharts.com”链接,表示是未注册版本,非常讨厌。
原理:网上看到的。
用SWF Decompiler软件加载swf文件,在Resources下找Action中的MainMoive,代码中有一段如下:
function checkKey(serial)
{
   var _l1 = com.amcharts.Utils.stripSymbols(serial, " ");
   _l1 = com.amcharts.Utils.stripSymbols(_l1, "/n");
   _l1 = com.amcharts.Utils.stripSymbols(_l1, "/r");
   _l1 = com.amcharts.Utils.stripSymbols(_l1, "/r/n");
   arr = _l1.split("-");
   if (Number(arr[2]) + Number(arr[3]) != 8645 || Number(arr[2].substr(1, 1)) - Number(arr[3].substr(2, 1)) != 2)
   {
       attachMovie("copyright_mc", "copyright_mc", 1001);
   } // end if
} // End of the function
这就是序列号的代码,再往下看
key_loader.loadVars(path + "amcharts_key.txt", this, "checkKey", false, "checkKey");
破解:
在swf目录下,新建文件amcharts_key.txt。
输入序列号内容如下:0000-0000-1422-7223。
保存后测试通过!真没想到他们会采用这么简单的加密方式!

注意:测试的时候发现一个问题,即使amcharts_key.txt正确放入SWF文件目录下,也有破解不成功的情况。
1)amcolumn, amline, ampie破解时跟so.addVariable("path", "");有关系。该属性设置错误破解不成功。
2)amstock似乎无法破解!

分享到:
评论

相关推荐

    SWFObject v1.5简介

    ### SWFObject v1.5 简介 SWFObject是一种用于网页中轻松检测和嵌入Adobe Flash内容的JavaScript库。它最初是为了简化Flash内容的集成与优化用户体验而设计的。随着网络技术的发展,虽然Flash已经不再流行,但了解...

    SWFObject_2.0_使用方法

    从 UFO 迁移到 SWFObject v2.0 的注意事项 - **熟悉新特性**:了解 SWFObject 2.0 新增的特性和改进之处。 - **代码迁移**:根据文档调整代码结构和逻辑,确保与新框架的兼容性。 - **调试与验证**:进行全面的...

    swfobject

    SWFObject 的出现使得Web开发者能够更加灵活和方便地控制Flash对象,同时确保非Flash支持的设备或浏览器也能呈现可替代的内容。 ### 1. 使用SWFObject的优点 - **浏览器兼容性**:SWFObject 可以检测用户浏览器...

    SWFObject2.2

    SWFObject由格雷格·劳瑞(Greg Lawry)开发,其2.2版本是一个稳定且广泛使用的版本。 在HTML网页中插入Flash通常涉及到复杂的代码和浏览器兼容性问题,尤其是考虑到IE、Firefox、Chrome、Safari等不同浏览器对...

    swfobject2.2[支持透明]

    swfobject2.2[支持透明] 用于在页面导入flash

    flash嵌入html 在html网页代码中嵌入Flash文件的解决方案(下)

    关于我的SWFObject V1.5的使用过程,以上篇中的介绍暂时告一段落了,下面我将会带领SWFObject V2.1出场与大家见面,如果我早一点结识V2.1的话,或许就不会受到“等待HTML DOM加载”问题的侵扰了。 首先,给大家简要...

    swfobject 2.1

    SWFObject通过改进其代码结构和生命周期管理,有效地减少了这种情况的发生。 4. **灵活性与可扩展性** - SWFObject 2.1 支持参数传递,允许开发者定制Flash对象的属性,如宽度、高度、颜色、背景等,增强了对Flash...

    SWFObject 图形报表

    SWFObject是一种JavaScript库,主要用于在网页中嵌入Flash内容,提供了一种更灵活、兼容性更好的方式来处理Flash对象的加载与管理。通过SWFObject,开发者能够确保Flash内容在不同浏览器和平台上的正确显示,同时...

    SWFObject 插件

    SWFObject使得网页开发者能够更方便地控制Flash对象的显示和行为,同时提高用户体验。 一、SWFObject的核心功能: 1. **跨浏览器兼容性**:SWFObject支持所有主流浏览器,包括Internet Explorer、Firefox、Chrome...

    SWFObject

    4. **参数设置**:SWFObject允许设置各种Flash对象的参数,如Flash版本、宽高、背景色、质量、透明度等,这些参数可以通过JavaScript灵活配置。 5. **内容替代**:对于不支持Flash的浏览器或设备,SWFObject可以...

    rtmp-swfobject-master.zip

    2. 视频编码和格式:直播源需要以特定的编码格式(如H.264 for video, AAC for audio)和封装格式(FLV或F4V)发送到RTMP服务器。 3. 安全性:由于RTMP协议是明文传输,可能面临被截取或篡改的风险。因此,需要考虑...

    swfobject_modified.js

    swfobject_modified.js

    swfobject2.2

    SWFObject 支持高度自定义,包括Flash对象的尺寸、颜色、参数等。此外,还可以设置Flash内容加载失败时的提示信息,提供更好的用户体验。 6. **易用性** SWFObject 的使用相对简单,即使对于初学者来说也容易上手...

    官网swfObject

    swfObject的使用简化了传统HTML中插入Flash对象的复杂过程。它通过检测用户浏览器是否支持Flash插件以及其版本,然后根据结果选择性地插入相应的SWF(Flash文件)或提供备选内容。这样不仅提高了用户体验,还确保了...

    swfobject-master.zip

    通过解压并研究这些文件,开发者可以了解到如何在网页上嵌入SWF对象,设置参数,如视频文件路径、播放器尺寸、控制条选项等。此外,还可以学习到如何处理错误,如Flash Player不支持或者用户未安装Flash Player的...

    uploadify(含swfobject.js)

    SWFObject是一个小巧但强大的JavaScript库,它的主要作用是检测用户的浏览器是否支持Flash,并根据情况动态插入Flash对象到HTML页面中,确保在不支持HTML5的浏览器中也能正常运行Uploadify的上传功能。 使用...

Global site tag (gtag.js) - Google Analytics