动画教程之分享Flash处置平安战略的履历-Flash动画基本
Flash特别适用于创建通过Internet提供的内容,因为它的文件非常小。Flash是通过广泛使用矢量图形做到这一点的。poluoluo中心提醒:良多人在处置平安战略时碰到成绩,我本人也总结了一些履历,供人人参考吧.
良多人在处置平安战略时碰到成绩,我本人也总结了一些履历,供人人参考吧.在FlashPlayer9.0.124.0及今后的版本中,socket战略文件关于任何Socket毗连都是必须的。也就是说,不管毗连到哪个端口(即便毗连到供应SWF文件的统一主机上的端口),方针主机上都必要套接字战略文件。毗连步骤:
0.不管是低于仍是高于1024端口,基于文件体系时都不会哀求战略文件,基于收集时才会哀求.
1.起首收回以null开头的<policy-file-request/>的动静,反省服务器843端口是不是有平安战略文件,战略文件格局为:
<cross-domain-policy>
<allow-access-fromdomain="*"to-ports="80-9000"/>
</cross-domain-policy>
发还战略文件的时分需要以0开头,假如843端口在3秒内没有哀求到战略文件大概to-ports设置的端口不同意链接,则断失落链接抛securityError,这个是flash自动倡议的.
2.假如您的客户端socket或xmlsocket毗连中设置了Security.loadPolicyFile("xmlsocket://服务地点:使用端口"),则毗连您的使用方针端口哀求平安战略文件,哀求和呼应的体例如上,不设置是不会哀求的.发哀求是在挪用connect之前.
3.假如您是http哀求体例要设置Security.loadPolicyFile("http://服务地点/crossdomain.xml"),crossdomain.xml文件内容如上,放在网站根目次就好了.比方mop的http://www.mop.com/crossdomain.xml
办理计划1:利用adobe官方供应的文件间接在服务器的843端口上创建服务,如许呼应速率最快,但关于使用的部署就贫苦了http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html
办理计划2:客户端必需加Security.loadPolicyFile("xmlsocket://服务地点:使用端口"),在服务真个使用端口上的公有协定上处置,一样平常的协定是长度+范例+数据,如许判别长度是0x3C70范例0x6C69,独自处置这个动静,但对本人的公有协定处置仍是有影响。
为何是如许的长度和范例看图:
办理计划3:独自在服务使用上处置843端口,和其他使用的服务剥离出来:
[*]//平安战略服务
[*]publicvoidstartPolicyServer()throwsIOException{
[*]IoAcceptoracceptor=newNioSocketAcceptor();
[*]acceptor.setHandler(newPolicyServerHandler());
[*]acceptor.bind(newInetSocketAddress(843));
[*]System.out.println("平安战略服务侦听端口:843");
[*]}
[*]//其他使用服务
[*]..................
[*]..................
[*]
[*]
[*]//独自的平安战略处置器
[*]publicclassPolicyServerHandlerextendsIoHandlerAdapter{
[*]//22字节+0占1个字节
[*]Stringsecurity_quest="<POLICY-FILE-REQUEST/>";
[*]//最初以0开头
[*]StringpolicyStr="<CROSS-DOMAIN-POLICY>
<ALLOW-ACCESS-FROMto-ports="80-9000"domain="*"/>
</CROSS-DOMAIN-POLICY>
";
[*]privatefinalLoggerlog=Logger.getLogger(PolicyServerHandler.class.getName());
[*]
[*]publicvoidmessageReceived(IoSessionsession,Objectmessage)
[*]throwsException{
[*]IoBufferprocessBuf=(IoBuffer)session.getAttribute("processBuf");
[*]processBuf.put((IoBuffer)message);
[*]processBuf.flip();
[*]
[*]if(getRequest(processBuf)){
[*]byte[]reps=policyStr.getBytes("UTF-8");
[*]IoBufferrb=IoBuffer.allocate(reps.length);
[*]rb.put(reps);//也有putString办法
[*]rb.flip();
[*]session.write(rb);//发还
[*]log.info("sendPolicy");
[*]}
[*]}
[*]
[*]//取得平安哀求的字符串
[*]privateBooleangetRequest(IoBufferbuf){
[*]Stringreq=newString(buf.array());
[*]if(req.indexOf(security_quest)!=-1){
[*]returntrue;
[*]}
[*]returnfalse;
[*]}
[*]@Override
[*]publicvoidmessageSent(IoSessionsession,Objectmessage)throwsException{
[*]session.close(true);
[*]}
[*]
[*]@Override
[*]publicvoidsessionClosed(IoSessionsession)throwsException{
[*]super.sessionClosed(session);
[*]session.removeAttribute("processBuf");
[*]}
[*]
[*]@Override
[*]publicvoidsessionCreated(IoSessionsession)throwsException{
[*]super.sessionCreated(session);
[*]IoBufferprocessBuf=IoBuffer.allocate(64);
[*]session.setAttribute("processBuf",processBuf);
[*]}
[*]
[*]}
备注:
1mina2.x对照1.x效力更高,丢弃了原本的btyeBuffer,新写了Iobuffer,缘故原由以下:
Itdoesntprovideusefulgettersandputterssuchasfill,get/putString,andget/putAsciiInt()enough.
Itisdifficulttowritevariable-lengthdataduetoitsfixedcapacity
2demux下DemuxingProtocolCodecFactory和MessageDecoder等功效更完美了,decodable判别是不是能剖析数据,decode剖析实践的数据,在处置公有协定上更复杂了
3Flash10socket类新增添timeout属性唆使创建毗连时需守候的毫秒数
若你要观看网页上的多媒体内容,flashplayer几乎是网络上的标准。为此播放器所制作的动画或图像十分常见。 考虑到实际的效果,这些专业的网站并不会去单纯追求技术本身,广告设计是否FLASH不是目的,关键是获得最好的宣传效果。 在与制作传统动画相比较的同时,flash具有便捷、节省人力财力,节约时间、推广方便的许多优势。但与此同时它也具有一点的缺点。 flash的优缺点可以如何运用呢? 没有安装FLASH插件的前提下,无法正常显示广告效果。根据调查显示,有3%的互联网用户没有安装shockwave Flash。虽然比例不大,但不能因为这样一个简单的原因而拒绝这些用户。 FLASH在网站建设过程中既然有这么多的问题,那为什么我们还继续使用FLASH,不可否认FLASH的问题的确存在,但也不可忽视FLASH在网站建设中。 动画广告相对于传统广告而言,它的优势在于不受时间、地点等条件限制,可以通过动画的形式将那些复杂又抽象的广告内容更加简单化、生动形象化。
页:
[1]