שאלה לגבי Preloader

Brusi

New member
שאלה לגבי Preloader

אני מתכנת ב-AS3, ואת רוב האובייקטים של הגראפיקה והסאונד אני מייבא ישירות מהספרייה. בשביל לייבא מהספרייה אני מסמן את Export for ActionScript ואת Export in frame 1. עכשיו השאלה היא כזאת: האם מפני שהאובייקטים מיוצאים לפריים הראשון (אני מן הסתם לא משתמש בכולם בפריים הראשון) זה אומר שהם ייטענו לפני הפרילואודר? כי זה יהפוך אותו לדי מיותר.. האם אני יכול לבטל את הסימון מהאפשרות Export in frame 1, והם עדיין יעבדו? האם אין קשר והכל יהיה בסדר גם אם אני אשאיר את זה מסומן? האם יש פיתרון אחר? כל המשחק (כן, זה משחק) בעצם בפריים אחד שבפלאש הוא ריק, ואני שולף את כולו באמצעות AS3. בשביל Preloader אני צריך ליצור סצנה נוספת שבאה לפני הפריים הזה? או שאולי אני יכול לקרוא לו מתוך הקלאס הראשי של המשחק? בקיצור אני רק רוצה שהוא יופיע לפני שכל המשחק נטען, אחרת הוא מן הסתם יהיה מיותר...
 

erezor

New member
לגבי ה-preloader

פלאש טוען אחוז מסויים מה-SWF לפני שהוא מתחיל לנגן אותו, כך שאם בפריים הראשון יש preloader, הוא יתחיל לעבוד רק אחרי פרק זמן מסויים, אף פעם לא מייד בהתחלה (נדמה לי אחרי 40%, בערך). מן הסתם, ככל שיש יותר אובייקטים בפריים הראשון, כך זמן הטעינה יתארך. בעקרון, רצוי שלא לעשות export לפריים הראשון, אלא אם כן אתה יוצר אובייקטים בצורה דינמית באמצעות פקודות כמו getDefinitionByName (עבר קצת זמן, אני מקווה שאני זוכר נכון...) - פקודה כזו יכולה לגשת לאובייקט מהסיפרייה רק אם עשית לו export לפריים הראשון. הפתרון הטוב ביותר הוא ליצור swf אחד שיהיה רק ה-preloader, והוא יטען את המשחק לתוך עצמו. ככה אתה יוצר קובץ קל, שייטען מהר ויתחיל לרוץ מהר, ואז בעצם אתה פותר את הבעיה שבגללה ה-preloader לא מתחיל לנגן ישר.
 

Brusi

New member
אני לא רוצה יותר מ-SWF אחד

אני רוצה שכל המשחק יהיה שמור בתוך SWF אחד. בגלל שזה משחק שמיועד להפצה המונית (בסופו של דבר) אז אני לא יכול לפצל אותו לכמה SWFים. אני כן טוען אובייקטים ישירות מהסיפרייה, כמו שאמרתי, אבל לא באמצעות הפונקציה שלך.. אולי אתה מתכוון ל-AS2 או למשהו אחר.. אבל אני חושב שזה אותו דבר. יש עוד הצעות?
 

Brusi

New member
מצאתי פתרון:

אפשר להסיר את הסימון מ-Export in frame 1, וזה עדיין עובד (חשוב אבל להשאיר את ה-Export to action script), אחרת לא יהיה אפשר לייבא דברים מהסיפרייה. אבל מה שאני עשיתי הוא:
File -> Publish Setting -> Flash -> Settings -> Export classes in frame: 2​
כששיניתי את ההפריים מ-1 ל-2, זה שינה את כל הExport in frame 1 ל- Export in frame 2 , ובכך מאפשר לי לשים פרילואודר סטנדרטי בפריים הראשון, שכשהוא מסיים לטעון הוא עושה Play, וכל המשחק קורה בפריים השני. תודה על העזרה בכל אופן :)
 
למעלה