Board logo

标题: 使用 Flash 描述复杂的社交网络-2 实现 [打印本页]

作者: look_w    时间: 2018-8-23 09:26     标题: 使用 Flash 描述复杂的社交网络-2 实现

基于 Flash ActionScript 的实现ActionScript 简介ActionScript 是基于 Adobe Flash Player 运行环境下的编程语言,它是一种类似 JavaScript 并遵循 ECMA 规范的脚本语言。目前最新版本号是 3.0,ActionScript 3.0 使 Flash 开发更接近面向对象设计思想的 Java 语言,由于其新版本引进了面向对象设计思想,它已被广泛运用于 Flash/Flex/AIR 的开发。ActionScript (后文中提到的 ActionScript 都是指 ActionScript 3.0)被 Flash Player 内置的 ActionScript 虚拟机 (AVM) 所执行,这又有点类似于 Java 虚拟机 (JVM)。
本文并不详细讲述 ActionScript 3.0 的语法,如想了解该语言的用法,可以查看 中的相关教程。
GraphML 介绍GraphML ——顾名思义(Graph+XML)是一种基于 XML 且用于描述图(Graph)的通用文件格式。为何要选择 GraphML ?由于 GraphML 并不像其他一些描述图的文件格式,采用的是自定义格式(如 GML),它是完全基于 XML,因此对于生成、存储或是处理图的服务而言,它是一个理想的标准。同时它也非常直观易用,容易被开发者理解和接受,尽管它有着所有基于 XML 文件格式所共有的通病——传输或存储时文件相对过大,不如 Json 和 AMF (Adobe 的一种二进制传输格式)那般轻量级。那么它通常用于描述怎样的图呢?以下作者列出了一些它所支持的图的类型:
而在社交网络中,边(edge)是被定义成人与人之间的关系,这里我们假设甲和乙之间存在一条无向边即表示甲乙相互认识,即这是一幅无向图。因此作者用 GraphML 来描述和存储一个社交网络无向图。
下面来看一个例子:
清单 2. GraphML 例子
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
            <?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns">
<!--data schema-->
<key id="e" for="node" attr.name="email" attr.type="string"/>
<key id="w" for="edge" attr.name="weight" attr.type="double">
   <default>1.0</default>
</key>
<graph id="" edgedefault="undirected">
   <!--nodes-->
   <node id="1">
     <data key="e">john@us.ibm.com</data>
   </node>
   <node id="2">
     <! — add profile here -->
   </node>
   <node id="3">
     ...
   </node>
   <!--edges-->
   <edge source="1" target="2">
     <data key="w">1.1</data>
   </edge>
   <edge source="1" target="3" />
</graph>
</graphml>




清单 2 即是一段简单明了的描述无向图的 GraphML 片段,与其对应的网状图即图 3。
图 3. 清单 2 所描述的网状图接下来我们来仔细分析清单 2 中整个 GraphML 的格式和规范:





欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0