基於序列化存取完成java對象深度克隆的辦法詳解。本站提示廣大學習愛好者:(基於序列化存取完成java對象深度克隆的辦法詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是基於序列化存取完成java對象深度克隆的辦法詳解正文
上面我們來配合進修一下
1、傳統的辦法
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"codebase="<a href="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0">http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0</a>" width="550" height="400" id="Untitled-1" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="mymovie.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="mymovie.swf" quality="high" bgcolor="#ffffff" width="550" height="400"name="mymovie" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="<a href="http://www.macromedia.com/go/getflashplayer">http://www.macromedia.com/go/getflashplayer</a>" />
</object>
這辦法是應用 object 和 embed 標簽來嵌入,仔細的會發明,object 的許多參數和 embed 外面的許多屬性是反復的,為何如許做?為了閱讀器兼容性,有的閱讀器支撐 object,有的支撐 embed,這也是為何要修正 Flash 的參數時兩個處所都要改的緣由。
這類辦法是 Macromedia 一向以來的官方辦法,最年夜限制的包管了 Flash 的功效,沒有兼容性成績。然則它如今不那末好用了: 沒法經由過程驗證,因為為了兼容性而嵌入的 embed 標簽是不相符 W3C 的標准的。固然,假如你不在意甚麼標准不標准,另當別論。
微軟因為各種緣由,在 sp2 後限制了 IE 的 ActiveX 的應用形式,就是在頁面中的 ActiveX 有一個虛框,須要用戶點擊一次能力正常交互。Flash是作為一個 ActiveX 嵌入到網頁中的,所以它也會受連累,只要經由過程 JS 嵌入 Flash 能力處理這個成績。
沒有 Flash 版本檢測,假如版本閱讀器的flash插件版本不敷,或許不克不及正常顯示你的 swf 文件,或許會彈出一個 ActiveX 切實其實認裝置的框——這個框對許多用戶來講是很恐懼的。
2、用JS嵌入的辦法
用JS嵌入就是各有各的嵌入辦法了,有嵌得好的有嵌得欠好的。有人用 document.write 直接寫,這方法說真話不年夜好,感到 hack 成份多了,有點為了驗證而驗證的意思,並且沒有表現出甚麼 JS 的優勢。我認為一個好的 JS 嵌入劇本,在包管 Flash 應有功效的基本上,要施展 JS 的優勢應當要有版本檢測,要能很好處理可拜訪性成績(也就是用戶在沒法閱讀 Flash 內容或禁用 JS 的時刻應當若何處置的成績),要易於反復應用。
我們這裡要講的是SWFObject這個處理計劃:
“SWFObject”是應用Javascript 拔出flash,利益多多,代碼簡練,不會湧現IE6下的“單擊此處以激活控件”的提醒,而且能經由過程W3C驗證。分歧於傳統的“object”拔出flash的辦法。
SWFObject在新的2.x版本中,其最簡略的挪用竟只需一句話,而且不須要期待頁面加載完成,這意味著你可以將這句話寫在頁面的任何處所。比之前的版本,要輕便多了。上面來看幾個簡略經常使用的挪用辦法:
1、最簡略,最根本,只需想拔出flash都能用到的經典一句話。
<div id="swfid"></div>
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
swfobject.embedSWF("test.swf", "swfid", "300", "120", "9.0.0", "expressInstall.swf");
</script>
注解:挪用辦法embedSWF——拔出SWF文件,參數順次是@swf文件的地址;@用於裝入swf文件的容器(如div)的id;@flash的寬度;@flash的高度(固然,這裡的寬高都可使用諸如100%如許的百分比來表現);@正常播放該flash所需的最低版本;@當版本低於請求時,履行該swf文件,這裡應用這個flash跳轉到官方下載最新版本的flash插件。(該參數可以省略)在統一個頁面拔出多個flash到分歧地位時,只需反復下面的語句,應用分歧的容器id便可以了。
2、給swf文件傳遞參數、變量、屬性的挪用辦法
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
//1、應用Json初始化變量、參數、屬性
var flashvars = {
name1: "hello",
name2: "world",
name3: "foobar"
};
var params = {
menu: "false"
};
var attributes = {
id: "dynamicContent2",
name: "dynamicContent2"
};
swfobject.embedSWF("test6_flashvars.swf", "content2", "300", "120", "6.0.0","expressInstall.swf", flashvars, params, attributes); </p>
<p>//2、傳統的初始化設置,後果一樣
var flashvars = {};
flashvars.name1 = "hello";
flashvars.name2 = "world";
flashvars.name3 = "foobar";
var params = {};
params.menu = "false";
var attributes = {};
attributes.id = "dynamicContent3";
attributes.name = "dynamicContent3";
swfobject.embedSWF("test6_flashvars.swf", "content3", "300", "120", "6.0.0","expressInstall.swf", flashvars, params, attributes);
//3、直接寫在前面,就一句話,簡練懀嗆,不滯滯泥泥
swfobject.embedSWF("test6_flashvars.swf", "content5", "300", "120", "6.0.0","expressInstall.swf", {name1:"hello",name2:"world",name3:"foobar"}, {menu:"false"}, {id:"dynamicContent5",name:"dynamicContent5"});
</script>
SWFObject 2.0 官方文檔(中文) http://www.jb51.net/books/175630.html
github: https://github.com/swfobject/swfobject.