با عرض تبریک به مناسبت فرا رسیدن ایام ماه مبارک رمضان؛
در این درس نحوه دانلود فایل از روی Server و ذخیره سازی آن آموزش داده میشود. در صورتی که قرار باشد پروژه روی Desktop کار کند باید از پروژه Air استفاده شود، در غیر اینصورت میتوانید از پروژه Action Script 3.0 استفاده کنید. در هر دو حالت عملیات دانلود توسط FileReference و بدون نیاز به هیچ واسطه PHP انجام میشود.
1- با توجه به نیاز خود یک پروژه Air و یا AS3 بسازید.
۲- ابتدا لازم است که فرم زیر را طراحی کنید.
۳- برای ادامه کلاسههای مورد نیاز را import کنید.
4- حالا به دو متغیر از نوع FileReference و URLRequest نیاز داریم. به کمک متغیر URLRequest آدرس فایل مورد نظر را برای دانلود به متغیر FileReference معرفی خواهیم کرد.
5- قصد داریم در این مثال بعد از کلیک روی download_mc عملیات دانلود شروع شود. پس Event Listener مربوطه را به صورت زیر تعریف میکنیم، همچنین این MovieClip در حالت Button قرار گرفته است (البته این کار ضروری نیست).
6- حالا تابع Start را که بعد از کلیک روی download_mc فراخوانی میشود، تعریف میکنیم.
در این تابع:
۷- حالا باید توابع مربوط به سه وضعیت لغو، حین و تکمیل دانلود که در زمانهای مختلف توسط FileReference فراخوانی میشوند را تعریف کنیم.
همانطور که مشخص است بعد از لغو و یا تکمیل دانلود دوباره وضعیت کلیک برای download_mc فعال میشود و Event Listenerهای مربوط به FileReference حذف میشوند. در حین دانلود هم mc_loaded درصد پیشرفت دانلود را نشان میدهد.
دانلود سورس: http://flashcenter.ir/fa/?p=47
در این درس نحوه دانلود فایل از روی Server و ذخیره سازی آن آموزش داده میشود. در صورتی که قرار باشد پروژه روی Desktop کار کند باید از پروژه Air استفاده شود، در غیر اینصورت میتوانید از پروژه Action Script 3.0 استفاده کنید. در هر دو حالت عملیات دانلود توسط FileReference و بدون نیاز به هیچ واسطه PHP انجام میشود.
1- با توجه به نیاز خود یک پروژه Air و یا AS3 بسازید.
۲- ابتدا لازم است که فرم زیر را طراحی کنید.
![Untitled-13.jpg](http://flashcenter.ir/wp-content/uploads/2011/07/Untitled-13.jpg)
۳- برای ادامه کلاسههای مورد نیاز را import کنید.
کد:
import flash.events.Event;
import flash.net.FileReference;
import flash.net.URLRequest;
import flash.events.ProgressEvent;
4- حالا به دو متغیر از نوع FileReference و URLRequest نیاز داریم. به کمک متغیر URLRequest آدرس فایل مورد نظر را برای دانلود به متغیر FileReference معرفی خواهیم کرد.
کد:
var downloader:FileReference;
var Request:URLRequest;
5- قصد داریم در این مثال بعد از کلیک روی download_mc عملیات دانلود شروع شود. پس Event Listener مربوطه را به صورت زیر تعریف میکنیم، همچنین این MovieClip در حالت Button قرار گرفته است (البته این کار ضروری نیست).
کد:
download_mc.buttonMode = true;
download_mc.addEventListener("click", Start);
6- حالا تابع Start را که بعد از کلیک روی download_mc فراخوانی میشود، تعریف میکنیم.
کد:
function Start(e:Event):void {
download_mc.removeEventListener("click", Start);
mc_loaded.scaleX = 0;
downloader = new FileReference();
Request = new URLRequest();
downloader.addEventListener(ProgressEvent.PROGRESS, Progress);
downloader.addEventListener(Event.COMPLETE, Complete);
downloader.addEventListener(Event.CANCEL, Cancel);
Request.url = url_txt.text;
downloader.download(Request);
url_txt.text = "Downloading ...";
}
در این تابع:
- ابتدا Event Listener مربوط به کلیک حذف میشود تا کاربر قبل از تکمیل دانلود نتواند دوباره این تابع را فراخوانی کند.
- mc_loaded در حالت آماده برای نشان دادن مقدار پیشرفت دانلود قرار میگیرد.
- یک شیء جدید برای FileReference و URLRequest ساخته میشود.
- سه Event Listener برای FileReference به منظور نشان دادن تکمیل و حین و لغو دانلود تعریف میشود.
- آدرسی که کاربر در فیلد متنی url_txt نوشته است به URLRequest منتقل میشود.
- آدرس فایل توسط URLRequest به FileReference معرفی میشود و کاربر پنجره ذخیره فایل را خواهد دید.
۷- حالا باید توابع مربوط به سه وضعیت لغو، حین و تکمیل دانلود که در زمانهای مختلف توسط FileReference فراخوانی میشوند را تعریف کنیم.
کد:
function Cancel(e:Event):void {
url_txt.text = "";
download_mc.addEventListener("click", Start);
downloader.removeEventListener(Event.CANCEL, Cancel);
downloader.removeEventListener(ProgressEvent.PROGRESS, Progress);
downloader.removeEventListener(Event.COMPLETE, Complete);
}
function Progress(e:ProgressEvent):void {
mc_loaded.scaleX = (e.bytesLoaded / e.bytesTotal) ;
}
function Complete(e:Event):void {
url_txt.text = "Download Finished.";
download_mc.addEventListener("click", Start);
downloader.removeEventListener(Event.CANCEL, Cancel);
downloader.removeEventListener(ProgressEvent.PROGRESS, Progress);
downloader.removeEventListener(Event.COMPLETE, Complete);
}
همانطور که مشخص است بعد از لغو و یا تکمیل دانلود دوباره وضعیت کلیک برای download_mc فعال میشود و Event Listenerهای مربوط به FileReference حذف میشوند. در حین دانلود هم mc_loaded درصد پیشرفت دانلود را نشان میدهد.
دانلود سورس: http://flashcenter.ir/fa/?p=47
آخرین ویرایش: