tarahan_group گفت:
سلام
ضمن عذر خواهي از همه واسه فونت ارسال قبليم.
چجوري روي يه Loading فلش در صد بزارماگه ميشه يه نمونه هم برام بفرستيد تا بررسي كنم.
مرسي
[email protected]
با سلام
ابتداي كار ، من تئوری اين موضوع را شرح مي دهم ، سپس به صورت عملي آن را با هم خواهيم ديد.
نرم افزار Flash براي نمايش يك فايل به صورت فريم فريم عمل مي كند. يعني در ابتدا
فريم شماره 1 و 2 و 3 ... را مي خواند و به ترتيب مطالب درون آنها را نمايش مي دهد.
حال اگر بخواهيم فايل نرم تر نمايش داده شود و در هيچ كجاي نمايش وقفه اي ايجاد
نشود ، راه حل چيست ؟
مي توان تمامي فريمها را در ابتدا خواند و سپس همگي را نمايش داد !
اين همان راهي است كه به PreLoad معروف مي باشد. همان درصدي كه شما گفته ايد.
حال بياييد در عمل اين تكنيك را مشاهده كنيم ...
:arrow:
ابتدا به خاطر داشته باشيد طرحهاي خود را از فريم شماره 1 شروع نكنيد ! به طور
مثال كار طراحي خود را از فريم شماره 5 ( يا هر چيزي بيشتر از 1 ) شروع كنيد.
چرا كه ما مي خواهيم از فريم شماره 1 براي انجام عمليات PreLoad استفاده كنيم.
همان طور كه در تصوير مشاهده مي فرماييد من كار طراحي اصلي خودم را از فريم شماره
5 شروع كردم. ابتدا بر روي فريم شماره 1 كليك كنيد و در پنجره Frame و در قسمت
Label يك نام به اختيار براي آن انتخاب نماييد.
به طور مثال من كلمه Loop را انتخاب كرده ام. پس از اين كار يك پرچم قرمز رنگ بر روي
فريم مورد نظر شما ( فريم شماره 1 ) ظاهر مي شود بدين معني كه اين فريم شما از
اين پس با نام Loop شناخته مي شود.
:arrow:
حال با توجه به شكل بر روي فريم شماره 2 ، دو بار كليك كنيد و يك Action به آن اضافه
نماييد. توجه كنيد Action ما در حقيقت همان تئوری است كه من در ابتدا توضيح داده ام.
اين هم كدي كه لازم داريد :
کد:
loadedFrames = getProperty("/", _framesloaded);
totalFrames = getProperty("/", _totalframes);
if (Number(loadedFrames)<Number(totalFrames)) {
percentageOutput = int((loadedFrames/totalFrames)*100);
gotoAndPlay ("loop");
} else {
gotoAndPlay ("start");
}
حال ممكن است سوال كنيد كلمه start از كجا پيدا شده ؟
اين كلمه نيز دقيقاْ مانند همان كلمه loop است كه من به صورت اختياري انتخاب كردم.
فريم شماره 5 را نيز همانند شيوه قبلي نامگذاري كردم.
به شكل توجه فرماييد :
خوب حالا معني اين Action چيست ؟
اگر به جملات كد دقت نماييد ، به اين صورت مي توانيد برداشت كنيد.
:arrow:
ابتدا تعداد فريمهاي لود شده توسط برنامه را در يك مقدار با نام loadedFrames نگه مي داريم.
سپس كل تعداد فريمهاي فيلم را در مقدار ديگري با نام totalFrames نگاه مي داريم.
حال مي گوييم اگر مقدار فريمهاي لود شده كمتر از كل فريمها بود ... يعني ...
کد:
if (Number(loadedFrames)<Number(totalFrames))
برو به سمت فريم اول كه با نام loop مشخص كرده ايم.
اگر به اين صورت نبود برو به سمت فريم start و فيلم را شروع كن !
خوب حالا يك مقدار ديگر هم با نام percentageOutput درست كرده ايم كه كارش نگاه داشتن
درصد پيشرفت لود كردن فريمها است ! توسط اين فرمول :
کد:
percentageOutput = int((loadedFrames/totalFrames)*100);
خوب اين مقدار مي تواند درصد پيشرفت لود فايل و دقيقاْ چيزي كه شما مي خواهيد
را نمايش دهد !
به همين راحتي !
اين هم چند نمونه به همراه Source براي كاركردن :
http://www.flashkit.com/movies/Scripting/Preloaders/Web_Shop-Steve_Ta-1950/index.php
http://www.flashkit.com/movies/Scripting/Preloaders/Very_adv-Luuk_Wel-1883/index.php
http://www.flashkit.com/movies/Scripting/Preloaders/Preloade-Flash_Gu-1260/index.php
موفق باشيد