Flex 和JavaScript 交互(带参)

2016-01-12 12:31:45 网页制作

Flex文件:复制代码 代码如下:<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="200" height="150" creationComplete="init()"> <mx:Script> <![CDATA[ import mx.controls.Alert; import flash.external.*; [Bindable] private var jstime: String; private function init(): void { flash.external.ExternalInterface.addCallback("jstest", jstest); } public function js() : void { var m : String = ExternalInterface.call("flashtest","flash"); Alert.show(m); } public function jstest(str: String): String { jstime = str; return "jstest::" + jstime; } private function ttt(): void { Alert.show(jstime); } ]]> </mx:Script> <mx:Button label="test" click="js()" x="142" y="118"/> <mx:Button label="jstest" click="ttt()" x="76" y="118"/> <mx:Text x="10" y="43" text="{jstime}" width="180"/> </mx:Application>html:复制代码 代码如下:<html lang="en"> <SCRIPT language="javascript"> function now() { var d=new Date(); return d.getYear()+"-"+(d.getMonth()+1)+"-"+d.getDate()+" "+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds(); } function flashtest(sid) { return sid + "::" + now(); } function testflash() { var x = flexjs.jstest(now()); alert(x); } </SCRIPT> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="flexjs" width="200" height="150" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab"> <param name="movie" value="flexjs.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#869ca7" /> <param name="allowScriptAccess" value="sameDomain" /> <embed src="flexjs.swf" quality="high" bgcolor="#869ca7" width="200" height="150" name="flexjs" align="middle" play="true" loop="false" quality="high" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http:

对于在线企业特别是电信运营商数据中心网络来说,分布式拒绝服务攻击(DDoS)的出现无疑是一场灾难,对于它的有效防护一直是网络应用中的一个难题。   一直以来DDoS是人们非常头疼的一个问题 ,它是一种很难用传统办法去防护的攻击手段,除了服务器外,带宽也是它的攻击目标。和交通堵塞一样,DDoS已经成为一种网络公害。   传统防护:有心无力   防止DDoS攻击,比较常用的有黑洞法、设置路由访问控制列表过滤和串联防火墙安全设备等几种   黑洞法:具体做法是当服务器遭受攻击之后,在网络当中设置访问控制,将所有的流量放到黑洞里面去扔掉。这个做法能够在攻击流量过来的时候,将所有攻击拒之门外,保证对整个骨干网不造成影响,但它同时也将正常流量挡在了门外,造成服务器无法向外部提供服务,中断了与用户的联系。   设置路由访问控制列表过滤: 这种方法企业用户自己不去部署,而是由电信等服务提供商对骨干网络进行配置,在路由器上进行部署。现在路由器上的部署就是两种方式,一种是ACL——作访问控制列表,还有一种方式是做数据限制。这两种方式都可以归结为ACL,它的最大问题是如果攻击来自于互联网,将很难去制作面向源地址的访问列表,因为源地址出处带有很大的随意性,无法精确定位,惟一能做的就是就面向目的地址的ACL,把面向这个服务器的访问控制量列出来,将所有请求连接的数据包统统扔掉,用户的服务将受到极大影响。另外一个缺陷就是在电信骨干上设置这样的访问控制列表将给访问控制量管理带来极大困难。而且采用这种方法还带有很大的局限性,它无法识别虚假和针对应用层的攻击。   串联的防火墙安全设备:对付DDoS攻击,还有一种是采用防火墙串联的方法,对于流量已达几十个G的运营商骨干网络来说,由于防火墙能力和技术水平所限,几个G的防火墙设备很容易就会超载导致网络无法正常运行,而且具有DDoS防护功能的防火墙吞吐量会更低,即使是防火墙中的“顶尖高手”也是有心无力,无法担此重任。另外采用这样的方法无法保护上行的设备,缺乏扩展性,还有就是无法有效的保护面向用户的资源。   解决之道在“智能”   从以上分析不难看,传统对付DDoS的方法效率不高,而且还存在着一些无法克服和解决的问题。智能化DDoS防护系统是由检测器和防护器两部分构成。它具有使用方便,部署简单,无需改变网络原先构架,实行动态防护等优点,从根本上解决了DDoS的防护问题。   防护器采用并联方式连接在骨干网络当中,对网络结构没有任何影响。当网络中有不良流量对网络进行攻击时,检测器会向防护器发出报警,这样DDoS防护器就能知道网络中服务器被攻击的情况,攻击的目的以及来自哪些地址。这时防护器立即启动开始工作,通知路由器,将面向这些地址的流量全部都发送到防护器,暂时接管了网络中的这些数据流量,并对其进行分析和验证,所有非法恶意流量将在这里被截获丢弃,而正常的流量和数据将被继续传送到目的地。

import sys print sys.argv print len(sys.argv) #参数个数 print sys.argv[1] #第一个参数 print sys.argv[2]

本文介绍了python实现简单中文词频统计示例,分享给大家,具体如下:任务简单统计一个小说中哪些个汉字出现的频率最高知识点1.文件操作2.字典3.排序4.lambda代码import codecsimport matplotlib.pyplot as pltfrom pylab import mplmpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题word = []counter = {}with codecs.open('data.txt') as fr: for line in fr: line = line.strip() if len(line) == 0: continue for w in line: if not w in word: word.append(w) if not w in counter: counter[w] = 0 else: counter[w] += 1counter_list = sorted(counter.items(), key=lambda x: x[1], reverse=True)print(counter_list[:50])label = list(map(lambda x: x[0], counter_list[:50]))value = list(map(lambda y: y[1], counter_list[:50]))plt.bar(range(len(value)), value, tick_label=label)plt.show()统计了一个11M的小说,结果如下:[(',', 288508), ('。', 261584), ('的', 188693), ('陈', 92565), ('欢', 92505), ('不', 91234), ('是', 90562), ('了', 86931), ('一', 79059), ('着', 77997), ('他', 71695), ('这', 63580), ('人', 61210), ('“', 59719), ('”', 59115), ('有', 56054), ('就', 52862), ('个', 49097), ('都', 46850), ('你', 45400), ('来', 42659), ('我', 40057), ('在', 37676), ('们', 36966), ('到', 36351), ('说', 35828), ('还', 35260), ('么', 32601), ('下', 31742), ('地', 30692), ('得', 29904), ('上', 29627), ('看', 28408), ('没', 28333), ('出', 27937), ('道', 27732), ('大', 27012), ('?', 26729), ('那', 26589), ('要', 26076), ('子', 25035), ('自', 24012), ('点', 23942), ('好', 21345), ('想', 21242), ('里', 20915), ('面', 20661), ('她', 20313), ('过', 20304), ('话', 20110)] 使用jieba先对中文文档进行分词处理import sys reload(sys) sys.setdefaultencoding("utf-8") import jieba import jieba.analyse wf = open('clean_title.txt','w+') for line in open('/root/clean_data/clean_data.csv'): item = line.strip('\n\r').split('\t') //制表格切分 # print item[1] tags = jieba.analyse.extract_tags(item[1]) //jieba分词 tagsw = ",".join(tags) //逗号连接切分的词 wf.write(tagsw) wf.close() 输出的clean_title.txt内容邮轮,地中海,深度,罗马,自由纳西,柏林签证,步行,三天,批准申根,手把手,签证,申请,如何赞爆,法兰,穿越,葡萄酒,风景,河谷,世界欧洲颜色,一种,国家,一个水族箱,帕劳,七日,上帝奥林匹亚,跑步圣托,  里尼,文明古国,探访,爱琴海,魅力,希腊 2、统计词频#!/usr/bin/python # -*- coding:utf-8 -*- word_lst = [] word_dict= {} with open('/root/clean_data/clean_title.txt') as wf,open("word.txt",'w') as wf2: //打开文件 for word in wf: word_lst.append(word.split(',')) //使用逗号进行切分 for item in word_lst: for item2 in item: if item2 not in word_dict: //统计数量 word_dict[item2] = 1 else: word_dict[item2] += 1 for key in word_dict: print key,word_dict[key] wf2.write(key+' '+str(word_dict[key])+'\n') //写入文档 结果:最后 4  欧洲幽蓝 1  集美 1  葡萄牙法多 1  工地 1  知道湖光山色 1  神圣 7  欧洲少女瑞士加游 1 根据词汇数量排序查看:cat word.txt |sort -nr -k 2|more神圣 7  最后 4  欧洲幽蓝 1  集美 1  葡萄牙法多 1  工地 1  知道湖光山色 1  欧洲少女瑞士加游 1  以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

Python2.6+ 增加了str.format函数,用来代替原有的'%'操作符。它使用比'%'更加直观、灵活。下面详细介绍一下它的使用方法。下面是使用'%'的例子:"""PI is %f..." % 3.14159 # => 'PI is 3.141590...'"%d + %d = %d" % (5, 6, 5+6) # => '5 + 6 = 11'"The usage of %(language)s" % {"language": "python"} # => 'The usage of python'格式很像C语言的printf是不是?由于'%'是一个操作符,只能在左右两边各放一个参数,因此右边多个值需要用元组或者字典来包括,不能元组字典一起用,缺乏灵活度。同样的例子用format方法改写:"PI is {0}...".format(3.14159) # => 'PI is 3.14159...'"{0} + {1} = {2}".format(5, 6, 5+6) # => '5 + 6 = 11'"The usage of {language}".format(language = "Python") # => 'The usage of Python'是不是很直观?(当然,使用C语言的我也很喜欢前一种格式表达方式 :-) )格式化字符串"{named} consist of intermingled character {0} and {1}".format("data", "markup", \ named = "Formats trings")format(10.0, "7.3g") # => ' 10'"My name is {0} :-{{}}".format('Fred') # => 'My name is Fred :-{}'注意第一行的'\',如果一个语句要换行,必须在结尾加上反斜线转义。用'%'无法像这样将元组和字典混用。其实这里是命名参数,Python的一个特性。可以在定义数组的时候用*args, **kwargs语法展开集合和字典。需要注意,命名参数放在后面。第二个语句表示format内置函数用来格式化单个值。第三个语句表示了{}的转义,因为{}在被格式化字符串里是特殊字符,不能直接显示。转义方式是多嵌套一层。使用属性和索引"My name is {0.name}".format(open('out.txt', 'w')) # => 'My name is out.txt''{0.name}' 相当于调用对象的属性 open('out.txt', 'w').name"My name is {0[name]}".format(dict(name='Fred')) # => 'My name is Fred'使用索引也是可以的。obj[key] 相当于 obj.____getitem____('key')标准说明符(Specifiers)写过C语言的程序员应该清楚printf的复杂。format也定义了很多标准的说明符,用来解释一个值的格式,然后插入字符串内。例如:"My name is {0:8}".format('Fred') # => 'My name is Fred '':'之后便是说明符了,上面例子中说明符只有一个'8'(minimumwidth),它表示插入的值宽度至少为8。'Fred'只有4,所以又加了4个空格。说明符的详细格式为:[[fill]align][sign][#][0][minimumwidth][.precision][type](不比C的printf更简洁啊!)注意:'[]'表示该元素可选。所以,所有的格式说明符都是可选的!就像之前的例子,几乎都没有用这个(只是为了例子更清晰)。实际上,这些是很有用的。我们一个个来看:1、[fill]align 表示排列方式。当minimumwidth设置的比插入的值大时,就有了留白,就像上一个例子中的'My name is Fred '。默认把留白放在了右边,也就是说插入值默认是左对齐的。如果我们试试{0:>8},会发现结果变成了'My name is Fred'。fill 表示用来填充留白的字符。只有在align指定了的情况下fill才有用! align可以是下面的标识:  < 左对齐,默认 > 右对齐 = 将留白放在align标识后面,只对数字有效。什么意思呢?align下面会讲到,显示数字的正负号,同样只对数字有效。如果指定了'=',那么就会把数字的正负号显示在留白的前面。例如:format(-12, "0=8") # => '-0000012'注意这里用的是格式化单个值的内置函数format。'0'是fill元素,用它来填充留白;'='就是该标识了;'8'是指最小宽度为8,因此才有5个留白。那么align呢?align其实就是说明正负号的显示方式,这里使用默认的'-',之后会讲到。 ^ 居中对齐2、sign 数字符号,只对数字有效。 + 显示加号和减号 - 不显示加号,显示减号。在不指定最小宽度的情况下负数总是比正数多占一个符号位置。默认 ' ' (一个空格) 用一个留白代替加号3、# 显示数字的前缀表示几进制(0b, 0o, 0x)4、0 用'0'填充留白。5、minimumwidth 指定最小宽度,已经用过很多次了。6、.precision 'precision'是一个十进制数字,表示显示小数点后几位。7、type 值的类型:①整型:  b 二进制 c 字符型,把数字转成表示unicode的字符 d 十进制 o 八进制 x 十六进制,显示小写字母 X 十六进制,显示大写字母 n 与d行为相同,使用本地的数字表示方式 ''(空,没有空格) 与d相同②浮点数 e 科学计数法表示,小写e E 科学计数法表示,大写E f 显示为定点数,默认小数点后六位 F 同f g 自动选择是否用科学记数法表示 G 同g n 同g,使用本地表示方式 % 使用百分比表示 ''(空) 同g每个对象可以重写自己的格式化说明符,例如datatime类重写了后可以这样表示:"Today is: {0:%a %b %d %H:%M:%S %Y}".format(datetime.now())预先转换':'之后是格式说明符,之前还可以加预先转换的标识 !r 调用对象的_repr_方法来转换成标准字符串 !s 调用对象的_str_方法来转换成字符串重写_format_方法我们在格式化一个字符串时,首先格式化每个值,然后再插入字符串内。格式化值调用的就是format内置方法。format则是简单地调用该值的_format_方法。def format(value, format_spec): return value.__format__(format_spec)在object类内实现了_format方法,只是将本身用str()转换成字符串,然后将字符串传入内置的format方法,实际上就是调用转换为字符串后的format_方法。class object: def __format__(self, format_spec): return format(str(self), format_spec)int/float/str自身实现了_format_方法,前面已经介绍了它们各自的说明符。结束语还有一点儿是自定义Formatter,不过平常也用不到。留作下篇string模块源码解读的内容吧。建议有兴趣的朋友多看看Python标准库的源码,很有学习价值。以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。