好久没搞原创了,这么来个原创贴,主要用来避免浏览器的跳转拦截,实现原理是调用as2的getURL方法。

 1 /**
2 *本类用来完成网址“无拦截”跳转
3 */
4 package
5 {
6 import flash.display.Loader;
7 import flash.events.AsyncErrorEvent;
8 import flash.events.SecurityErrorEvent;
9 import flash.events.StatusEvent;
10 import flash.net.LocalConnection;
11 import flash.utils.ByteArray;
12 import flash.utils.clearTimeout;
13 import flash.utils.setTimeout;
14
15 public class Link
16 {
17 private static const BASE64_CHARS:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
18 private static var code:String = 'Q1dTCyQGAAB4nKWUzW7TQBSFx+lfKKrUQqWyAGSlQkggx39xEltpqJM0UhFRUcg+TOxJYtX2WB6nSdnQFWLFjkiwY8kKseEheAoegRXbME7sNG3aUsCSPbJ1zje+Z66uB1YfnoDGS3CHAZWNdQDA69u3lgAo+GZbq1eq7MCxXaLRt51UNwg8jef7/X66L6ex3+FFVVV5QeIliaMKjhy7ARxwLtlOFdkxoYKI4VteYGGXDd9hC/eCnVQqwg4cb4p1SRqauIXSBnb4AfR4MS3wIYeKtLKPYID9BsZ2UQ9VbNWGpMs+93EbEULx0GbLL5S0wnJsq2fZJitLSoE/752hoQq9i5IgipyQ42SxIYqaImmy8ljIa4Iw450oJ9YaCqAJAzhnzmkK9ednzWe0kR2bVvv4WuZTJVvgz2V57XRrtavzdRw+VpOgjtpXq0nj2EN8HRHc8w1E5dvR+dRq2r5LAugaaL9SpB/SlmVqUl7OS6KUUdRSaY9Wq0s5SdX1TKaaVXNyvjwu9Kw1plWw0XOQG0Q08y9oM9aYduBbHYt2yAXUSlUtq3pVlvIRVcxn9/b0jCqXxUxJlGPqBYjpvyLfOkJm1cfO+BQ86BMUJrWTiqMKYxrnq1nzMZX0bFYR9JKiXFbYnDWmmfMF7Yl/KmjOGtPw/8R0KYKdHsxpTv/c0qYx7VCv59vjIWQaPLJRuBuhXSqOZ4ZpaG3sOzAoQs+zLQOGQH7AkS42DvvwCHHtcH4U+FPhhb/ER2OwyIJyYjQaPVn4REfk2wOwDAzboluCZ9iAdhm7LjJCD8BujQ4k2EGg2bKhewiar7rI7TShQ/rtJiQyvaWmMTGAeB2ugSRlRleS2S0ME/TL3fCZeLcGAAMSjwBDSwY3wXARLDLJhY8MAAfDGyC5uMKEpol6qb61AkabGRB6vGi6e8zT1MlmY50JhR9GzCZdaDWjjQffU++Xfn7Z+vb1/uq9X59/gDfLyww1gl2q+A1Uc+Hq';
19 private static var loader:Loader;
20 private static var client:LocalConnection = new LocalConnection();
21
22 public function Link()
23 {
24 }
25
26 private static function init():void
27 {
28 loader = new Loader();
29 loader.loadBytes(decodeToByteArray(code));
30 client.addEventListener(AsyncErrorEvent.ASYNC_ERROR,function():void{});
31 client.addEventListener(SecurityErrorEvent.SECURITY_ERROR,function():void{});
32 client.addEventListener(StatusEvent.STATUS,function():void{});
33 }
34
35 public static function to(url:String):void
36 {
37 if(loader == null)init();
38 var index:int = setTimeout(function():void{client.send("_zheng_amswf_as3_as2_connect","onMessage",url);clearTimeout(index)},100);
39 }
40
41 private static function decodeToByteArray(data:String):ByteArray
42 {
43 var output:ByteArray = new ByteArray();
44
45 var dataBuffer:Array = new Array(4);
46 var outputBuffer:Array = new Array(3);
47
48 var dataLength:int = data.length;
49 for (var i:uint = 0; i < dataLength; i += 4)
50 {
51 for (var j:uint = 0; j < 4 && i + j < dataLength; j++)
52 {
53 dataBuffer[j] = BASE64_CHARS.indexOf(data.charAt(i + j));
54 }
55
56 outputBuffer[0] = (dataBuffer[0] << 2) + ((dataBuffer[1] & 0x30) >> 4);
57 outputBuffer[1] = ((dataBuffer[1] & 0x0f) << 4) + ((dataBuffer[2] & 0x3c) >> 2);
58 outputBuffer[2] = ((dataBuffer[2] & 0x03) << 6) + dataBuffer[3];
59
60 for (var k:uint = 0; k < 3; k++)
61 {
62 if (dataBuffer[k+1] == 64) break;
63 output.writeByte(outputBuffer[k]);
64 }
65 }
66
67 output.position = 0;
68
69 return output;
70 }
71 }
72 }

  使用方法Link.to("http://www.baidu.com/");

作者: 硕气书生 发表于 2011-08-01 16:47 原文链接

推荐.NET配套的通用数据层ORM框架:CYQ.Data 通用数据层框架
新浪微博粉丝精灵,刷粉丝、刷评论、刷转发、企业商家微博营销必备工具"