29-07-2005, 12:43
|
|
|
חבר מתאריך: 30.04.04
הודעות: 310
|
|
ארג אני לא מסוגל לערוך.
מצאתי פתרון כלשהו באיזה Guide.
קוד:
function moveBG() {
_root.bg1._x-=1;
_root.bg2._x-=1;
_root.bg3._x-=1;
}
setInterval(moveBG, a);
if( _root.bg1._x==-350 ) {_root.bg1._x=700;}
if( _root.bg2._x==-350 ) {_root.bg2._x=700;}
if( _root.bg3._x==-350 ) {_root.bg3._x=700;}
a-=1;
stop();
bg 1-3, הם חלקים של הרקע שזזים, ברקע שהם יוצאים מהמסך, הפלאש מעביר אותם לתחילתו, וכך נוצרת תנועה מתמדת.
A זה משתנה התאוצה, שמוגדר כ-1000 בפריים קודם.
בתצורה הנוכחית, יש לי 2 בעיות:-
1. ה-A לא יורד עם הזמן, אלא נשאר כ-999, ולכן התנועה היא קבועה (פיקסל כל שניה - למה הוא בכלל זז אם עשיתי לו STOP לא ברור לי גם...)
2. פונקציות ה-IF לא מתבצעות (כי הוא מבצע אותן רק פעם אחת, כשהתנאי לא מתקיים, בגלל שכל הסקריפט הזה לא מצוי בלולאה.
הבעיות נגרמו כי אני לא נמצא בלולאה כלשהי, לחזור לאותו פריים עם gotoAndPlay, יוצר בעיות, וגם תלות ב-Framerate של הסרטון, ולכן זה לא בא בחשבון.
אם אני שם את פונקציות התנועה וה-IF בתןך לולאה, הפלאש מתחיל להתקע כשאני עושה COMPILE, או שפשוט כל הגרפיקה קפצה כמה מאות פיקסלים קדימה (כאילו הלולאה התעלמה מה-delay, ופשוט הציגה את התוצאה אחרי סיומה...)
דוגמה לקוד עם לולאה:
קוד:
function moveBG() {
_root.bg1._x-=1;
_root.bg2._x-=1;
_root.bg3._x-=1;
}
for (i=1; i=2000; i++) {
setInterval(moveBG, a);
if( _root.bg1._x==-350 ) {_root.bg1._x=700;}
if( _root.bg2._x==-350 ) {_root.bg2._x=700;}
if( _root.bg3._x==-350 ) {_root.bg3._x=700;}
a-=1;
}
stop();
צירפתי את קובץ ה-FLA. (קצת גודל
תודה לעוזרים!https://2005-uploaded.fresh.co.il/2...29/84134590.fla https://2005-uploaded.fresh.co.il/2...29/84134590.fla
|