שאלה דחופה תענו מהר!!!

s a g s a g

New member
שאלה דחופה תענו מהר!!! ../images/Emo92.gif ../images/Emo13.gif

רציתי לעשות מישהו הולך כשלוחצים על חץ ימין.... אז חשבתי איך אפשר לעשות זאת ועלה לי רעיון לראש- אולי אני ישים תמונה של מישהו שלא הולך ומתי שיילחצו על חץ ימין זה יעבור לMOVIE CLIP שהוא כן הולך! ואז נזכרתי- אין לי שום ידע בתכנות ואפילו מעבר לפררים אחר בעזרת חיצים אני לא יודע לעשות...
 

Galle

New member
לא לא.. לא כדאי ככה..

העקרון נכון.. אבל לא מדויק.. במקרה אני מכין איש שהולך.. בשביל איזה פרוייקט שלי.. אז זאת תיהיה הדוגמא. והנה ההסבר על מה שעשיתי שם (עם האיש, לא עם הרקע) : האיש שאתה רואה הוא מוביקליפ אחד. בפריים הראשון יש פקודת stop. בפריימים 1-20 בערך, יש ציור של האיש, מופנה כלפי מעלה. יש תנועה של רגליים וידיים, כאילו בזמן הליכה, אבל אני לא באמת מזיז את האיש. בפריים 20 זה חוזר לפריים 1. בפריימים 21-39, יש ציור של האיש, מופנה למטה. תיהיה גם תז וזה של הרגליים וידיים, אבל עוד לא עשיתי את זה.. בפריים 39 יש חזרה אל פריים 21. וכך .. הפריים 40 האיש מופנה אל צד ימין, ובפריים 60 מופנה לצד שמאל. עכשיו.. כשאני לוחץ למעלה: 1) אני מקטין את ה- y_ של המוביקליפ כולו. (הקטנת ה- y_ פירושו להעלות את המוביקליפ למעלה) 2) מתחיל להריץ את המוביקליפ. כלומר עכשיו המוביקליפ רץ בפריימים 1-20 שזה הליכה לכיוון מעלה. כשאני לוחץ למטה: 1)אני מגדיל את ה- y. 2) עובר לפריים 21 במוביקליפ - ששם האיש מצויר כלפי מטה. כשאני לוחץ ימין: 1) אני מגדיל את ה- x_ של המוביקליפ 2) עובר לפריים 40 במוביקליפ.. שם מצויר האיש על צד ימין.. הבנת את הרעיון? איך מעלים או מורידים את ה- x ו- y ? ב- instance name של המוביקליפ של האיש נכתוב man . עכשיו נעשה שבלחיצה על מקש ימין, הוא יזוז ימינה, ויעבור לפריים 40..
function MoveMan(){ if (Key.isDown(Key.RIGHT)){ _root.man._x++; _root.man.gotoAndPlay(40); } } setInterval (MoveMan, 1);​
מקווה שזה מספיק מובן..
 

Galle

New member
כן לא.

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

s a g s a g

New member
אי רוצה רק...

ת'קוד שמעביר את זה לפריים אחר עם לוחצים על חץ ימין...
 

Galle

New member
רשמתי לך כבר.. והנה שוב: ועם הסבר

הקוד הזה צריך לבוא בפריים.
stop(); function MoveMan(){ if (Key.isDown(Key.RIGHT)){ _root.man._x++; _root.man.gotoAndPlay(40); } } setInterval (MoveMan, 1);​
הסבר לפי שורות: 1) אני עוצר את הסרט בשביל להישאר על הפריים הזה (הפריים עם המוביקליפ של האיש) 2) אני מתחיל פונקציה וקורא לה: MoveMan. 3) אם יש לחיצה על לחצן "ימין" אז...: 4) ה- x_ של המוביקליפ ששמו man גדל. 5) אני מעביר את המוביקליפ לפריים 40. 6)סוגר 7)סוגר 8) קובע שהפונקציה תרוץ כל 1 milisecond (נראה לי ..) שורה 5, זה המעבר לפריים.. מספיק מובן עכשיו?
 

s a g s a g

New member
רגע רגע...

זה אמור להיות בפריים הראשון של המוביקליפ? או של הסרט הכללי? ועוד שאלה- את הMOVEMAN צריך לשנות לשם הסימבול? או רק את הMAN?
 

Galle

New member
אז הנה:...

את הפקודות אתה שם בפריים הראשון - הראשי (main timeline). ב- instance name של האיש, אתה צריך לכתוב "man".
 

s a g s a g

New member
זה לא מראה שגיאות (כבר שיפור)

אבל זה לא עובר לMOVIE CLIP
העלתי את הFLA כדי שתוכל לראות.... (על תעלה לי FLA מתוקן....אני רוצה ללמוד לבד וזה גם לא יעלה אצלי (פלאש 5
)
 

choice

New member
בתור התחלה

זה שקיים symbol בספריה של האיש שנקרא man, לא נותן הרבה. אתה צריך לשים אותו על הבמה, וב-properties לקרוא לו man ב-Instance Name. רק כך, כאשר שם המופע הוא man ולא שם הסימבול, המחשב ידע לגשת אליו ולהשפיע עליו בעזרת התכנות שלך. בנוסף.. כרגע, הדמות שמופיעה במסך מורכבת מכל מיני סמלים וציור של הגוף, ולא אותו movie clip שמכיל את מה שרצית. אז תשים את אותו movie clip שקראת לו man על הבמה, ותקרא לו man ב-Instance Name, וכך התכנות ישפיע עליו. אחרכך, אני מניחה שתראה שזו עדיין לא התוצאה שאליה רצית להגיע, אבל לפחות עברת עוד שלב בהבנה של הדברים, ומכאן אפשר להמשיך.
 

s a g s a g

New member
אוקיי...תודה צ'וייס!

ואני מעלה את הFLA... והוא לא פועל (עדיין) אהה...ובהתחלה זה פעל גם בלי שאני לוחץ אז שמתי סטופ לכל הליירים שבמובי קליפ
 

choice

New member
../images/Emo13.gif

אז קודם כל, אני מבינה שהצליח לך העניין עם ה-properties? מה שכתבתי במסר עזר? ועכשיו כמה הערות בקשר לקובץ שלך: 1. ב-Movie Clip עצמו, אין צורך לכתוב stop(); בכל שכבה. אתה יכול ליצור שכבה למשל לפקודות, ובפריים הראשון לשים פקודת stop(); וזה יספיק. 2. האנימציה לא פועלת לך מכיוון שרשמת שברגע שלוחצים מקש ימינה, זה יריץ מפריים 39. פריים 39 אצלך הוא בעצם הפריים האחרון באנימציה, ואז הוא חוזר לראשון שבו בעצם נאמר לסרטון לעצור. כך שבעצם, לא יוצא מזה כלום. לכן, בפקודת gotoAndPlay שלך אתה צריך לרשום לו פריים 2 (שיריץ מהפריים השני עד לסוף הסרטון ושוב יעצר), ולא לפריים האחרון. זה עדיין לא יפתור את הכל, אבל לפחות אמור לפעול בצורה מסויימת. אם תוכל להסביר מה בדיוק אתה רוצה שיהיה, אולי אוכל לעזור יותר. אתה רוצה שכל עוד לוחצים ימינה הדמות תזוז וגם האנימציה תפעל? או שזה יעשה כל פעם צעד אחד ויעצר? או... מה בדיוק? מקווה שהדברים שלי לא נשמעים רשמיים מדי.. אני סתם מנסה לעזור.
 

s a g s a g

New member
תודה רבה...!@!

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

choice

New member
אני אבדוק את זה

פשוט חייבת לעוף עכשיו. יותר מאוחר אבדוק, ואשתדל גם לתת לך תכנות שיעזור לעשות את מה שאתה רוצה.
 
למעלה