הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   שאלה בנוגע ל XML מול AS (https://hosts.co.il/forums/showthread.php?t=84463)

SIGHT 20-08-10 17:58

שאלה בנוגע ל XML מול AS
 
שאלה קצרה בנוגע ל Action Script לאלו שמבינים...

לאחרונה התחלתי ללמוד AS3 כדי לסיים את התיק עבודות שלי.
נתקלתי בבעיה כשהתחלתי לנסות לטעון קובץ XML לתוכנית.

הקובץ נטען בצורה מצויינת, השתמשתי בפונקציה הבאה:

קוד:

function getXML(xmlData:XML):void {
 
 projectInfo = xmlData.projects.project.info;
 projectLink = xmlData.projects.project.link;
 projectThumb = xmlData.projects.project.thumb_path;
 projectImage = xmlData.projects.project.image_path;
 
 projectsNum = projectThumb.length();
 
}

כמובן שהגדרתי את כל המשתנים כמו שצריך...
החלק האחרון - projectsNum = projectThumb.length();
אמור כמובן להביא לי את כמות הפרוייקטים שיש לי (לפי כמות ה THUMBים שלי).
כשאני מבצע trace למשתנה - הוא נותן לי את התוצאה המדויקת,
אבל כשאני מנסה להשתמש במשתנה בפריימ אחר (או בכל מקום מחוץ לפונקציה) זה מביא לי ערך NaN - בקיצור, לא עוזר.

קצת רקע למה אני מנסה לעשות:
יש לי בקובץ XML רשימת פרוייקטים אני מציג אותם בעזרת לולאת FOR ב AS
אני כמובן רוצה שהלולאה תחזור על עצמה כמספר הפרוייקטים שרשומים לי בקובץ ה XML.

אני לא כל כך מבין איפה אני טועה...
מישהו יכול לעזור?

תודה,
יקיר :)

בניה 21-08-10 00:48

לא יצא לי להתעסק בAS אבל זה נראה בעיה שהמשתנה הוא משתנה מקומי(בתוך הפונקציה)
כך שהוא לא קיים מחוץ לה.
אז או שתעשה שהיא מחזירה את הערך
r
קוד:

eturn projectsNum
או שתעשה משתנה גלובאלי שהיא תשנה או תשלח לה משתנה by reference אם קיים כזה דבר ב AS

gaming-pc 21-08-10 00:58

הבעיה שלך כנראה נובעת מכך שאתה עושה את הקוד בפריימים, במקום בקובץ AS שמקושר לDocument Path.
להיות יותר ספציפי, כנראה משהוא בסדר של הקוד ( כי הרי יש לך קודים בכמה פריימים ), וכשזה "מנגן" את הפריים / קוד, זה דופק לך את המשתנה.

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

SIGHT 21-08-10 01:34

ציטוט:

נכתב במקור על ידי gaming-pc (פרסם 776042)
הבעיה שלך כנראה נובעת מכך שאתה עושה את הקוד בפריימים, במקום בקובץ AS שמקושר לDocument Path.
להיות יותר ספציפי, כנראה משהוא בסדר של הקוד ( כי הרי יש לך קודים בכמה פריימים ), וכשזה "מנגן" את הפריים / קוד, זה דופק לך את המשתנה.

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

אני לא בטוח איך אני ניגש מקובץ AS חיצוני לאובייקט ספציפי בקובץ פלאש מסוים. אני אשמח אם תוכל לתת לי טיפ בנושא.

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

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

תודה לשניכם,
עוד הצעות?

gaming-pc 22-08-10 03:27

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

אולי תנסה להגדיר את projectsnum בתור number.


כל הזמנים הם GMT +2. הזמן כעת הוא 04:44.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ