
22-04-2006, 19:22
|
 |
|
|
חבר מתאריך: 21.09.05
הודעות: 5,321
|
|
|
אתה יודע מה, ננסה את זה בצורה אחרת.
תוסיף בהתחלה, לפני ה-stop(), הגדרת משתנה:
ונוסיף גם את השורות הבאות:
ואת השורה:
הפלאש נותן לך הערה על שורה 9, כלומר על השורה:
קוד:
this.gotoAndStop(_root.percent);
המילה this מתייחסת לאובייקט עליו כתוב הקוד, אבל קוד זה רשום על הפריים הראשי ולכן נשנה את this ל-_root.
נשנה גם את השורה ששינית בהודעה הקודמת - ננסה דרך בדיקה שונה.
עכשיו הקוד אמור להיראות כך:
קוד:
stop();
var i:Number = 0
var KbTotal = _root.getBytesTotal()
var KbLoaded
var percent
_root.bar.onEnterFrame = function()
{
i++
KbLoaded = _root.getBytesLoaded()
_root.percent = Math.round(_root.KbLoaded/_root.KbTotal *100 );
_root.gotoAndStop(_root.percent);
_root.dynamic_txt.text=_root.percent+"%";
if (_root.percent>=100){
_root.gotoAndPlay("start");
trace(i)
}
הסבר קטן: המשתנה i מייצג את מס' הפריימים שעברו עד שהסרטון נטען (מכיוון שבכל פריים קידמו את i ב-1).
בסוף הטעינה, במשפט ה-if כאשר percent שווה ל-100 הוצאנו שפלט של המשתנה i. אם הפרילואדר תקין, i יראה מספר גדול מ-0.
אם המספר יהיה שווה ל-1, תוכל להסיק כי התוכנית קלה ולכן הסרטון נטען תוך פריים אחד.
אם המספר יהיה שווה ל-0, תוכן להבין כי הטעינה לא פעלה (כי i לא קודם, אפילו לא ב-1).
מקווה שהבנת את דרך הבדיקה הזאתי.
ד"א - אם אתה מגלה שהתוכנית פשוט קלה והטעינה אורכת זמן קצר - תוכל להוריד את הגדרת המשתנה והפעולות עליו.
בהצלחה 
_____________________________________
בברכה, נעם בריקמן
|