bytearray के फ्लैश की इनबिल्ट कार्यान्वयन के लिए एक विधि (ByteArray::deflate
bytearray की सामग्रियों() हवा निकालना को Deflate एल्गोरिथ्म DEFLATE Compressed Data Format Specification version 1.3 है
वहाँ है, यह भी एक तरीका है जिसके ByteArray::compress
zlib एल्गोरिथ्म
का उपयोग कर संपीड़ित करता है थोड़ा पर
होल्ड, मैं तुम्हें इस वर्ग का उपयोग करें और जावास्क्रिप्ट को यह बेनकाब करने के लिए कुछ नमूना कोड लिखेंगे।
संपादित
मैं http://www.filefactory.com/file/cf8a39c/n/demo5.zip
संपादित 2 पर फ़ाइल को अपलोड किया जो लोग फ़ाइलों को डाउनलोड नहीं कर सकता है के लिए: demo5.fla में
मेरे ActionScript कोड (demo5 का संकलन किया।swf)
import flash.external.ExternalInterface;
import flash.net.FileReference;
import flash.events.Event;
import flash.utils.ByteArray;
if(ExternalInterface.available) {
//flash.system.Security.allowDomain("localhost");
ExternalInterface.addCallback("deflate", doDeflate);
ExternalInterface.addCallback("compress", doCompress);
}
var method:String="deflate";
var b:ByteArray;
function doCompress(_data:String):void {
method="compress";
exec(_data);
}
function doDeflate(_data:String):void {
method="deflate";
exec(_data);
}
function exec(_data:String):void {
b=new ByteArray();
b.writeUTFBytes(_data);
b.position=0;
if(method=="compress") {
b.compress();
} else if(method=="deflate") {
b.deflate();
}
executed();
}
function executed():void {
if(ExternalInterface.available) {
b.position=0;
var str:String=b.readUTFBytes(b.bytesAvailable);
ExternalInterface.call("onExec", str);
}
}
swf एम्बेड करने के लिए मेरे एचटीएमएल कोड:
<button onclick="doDeflate()">Deflate</button>
<button onclick="doCompress()">Compress</button>
<div id="flashContent">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="1" height="1" id="demo5" align="middle">
<param name="movie" value="demo5.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="wmode" value="window" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<param name="allowScriptAccess" value="always" />
<embed src="demo5.swf" quality="high" bgcolor="#869ca7"
width="1" height="1" name="demo5" align="middle"
play="true" loop="false" quality="high" allowScriptAccess="always"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer">
</embed>
</object>
</div>
और अंत में जावास्क्रिप्ट कोड:
function doDeflate() {
var data="fdg fhnkl,hgltrebdkjlgyu ia43uwriu67ri8m nirugklhvjsd fgvu";
//DATA CONTAINS DATA TO BE DEFLATED
thisMovie("demo5").deflate(data);
}
function doCompress() {
var data="fdg fhnkl,hgltrebdkjlgyu ia43uwriu67ri8m nirugklhvjsd fgvu";
//DATA CONTAINS DATA TO BE DEFLATED
thisMovie("demo5").compress(data);
}
function onExec(data) {
//DATA CONTAINS THE DEFLATED DATA
alert(data);
}
function thisMovie(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName];
} else {
return document[movieName];
}
}
स्रोत
2011-12-05 12:49:52
मुझे यह मिला लेकिन मैंने कभी इसका उपयोग नहीं किया (और यहां कोई फ़्लैश नहीं): http://jszip.stuartk.co.uk/ – AsTheWormTurns
लिंक के लिए धन्यवाद, लेकिन मूल रूप से मुझे ऐसे समाधान की आवश्यकता होगी जो सभी प्रमुख ब्राउज़र में काम करे आईई 7 +, एफएफ, सफारी और क्रोम के रूप में। – feketegy