אנא בקרו בפורום פלאשו בכתובת flashoo.co.il/forum, פורום הקהילה החדש. מערכת הפורומים הזו ננעלה ותשאר בתור ארכיון בלבד.
Please visit our new forums at flashoo.co.il/forum, our brand new forum. These forums have been closed and will remain online as an archive only.
Flashoo Logo

בלוגים |מאמרים | חיפוש | רשימת משתמשים

 
JSFL- Batch rename למוביקליפים בספריה, עובד חלקית
« הבא הכי ישן | הבא הכי חדש » עקוב אחר נושא זה | שלח נושא זה באימייל | הדפס נושא זה
מאור בר
פורסם ב: 22/01/2010 , 02:50


חבר על


קבוצה: צוות האתר
הודעות: 3289
משתמש מספר: 70
תאריך הצטרפות: 13/03/2003



הקוד עובד מצוין (באדיבות עידו), רק שהוא נותן למוביקליפים שבחרתי בספריה את השמות לפי הסדר שבו הם נוצרו (Date Modified) ואני רוצה שהם יקבלו שמום לפי הסדר האלפביתי של שמותיהם (Name).
להבהרה, אם יצרתי מוביקליפים לפי הסדר והשמות הבאים:
mcZ
mcX
mcB
mcA

בספריה אני מציג לפי name ואז הסדר שלהם הוא אלפביתי, mcA ראשון ו-mcZ אחרון.

כשאני מסמן ומריץ את הפקודה אני מקבל שמות חדשים לפי הסדר שבו נוצרו.
mcZ = newMc1
mcX = newMc2
mcB = newMc3
mcA = newMc4


CODE
// Set reference to document elements
var DOM = fl.getDocumentDOM();
var LIB = DOM.library;
//
function renameElementsInLib (indexName) {
var selItems = LIB.getSelectedItems();
for (var i = 0; i < selItems.length; i++) {
var itemNameStartPos = selItems[i].name.lastIndexOf("/");
selItems[i].name = indexName + i;
}
}
renameElementsInLib (prompt ("items index name:"));


--------------------

_____עיצוב אינטראקטיבי

______MaorBar.com

---------------------------------------
The Dingo ate your baby
 
     Top
shvilam
פורסם ב: 22/01/2010 , 08:18
user avatar

חבר קהילה ותיק


קבוצה: אושיות הקהילה
הודעות: 671
משתמש מספר: 30
תאריך הצטרפות: 1/03/2003



אז למה שלא תמיין לפי השם
משהוא כמו
פונקציה מיון כול שהיא

CODE
function compareNames(a, b) {
var nameA = a.name.toLowerCase( );
var nameB = b.name.toLowerCase( );
if (nameA < nameB) {return -1}
if (nameA > nameB) {return 1}
return 0;
}

להוסיף עוד שורה מיתחת לשורה הזו בקוד שלך
CODE
var selItems = LIB.getSelectedItems();
[B]
selItems = selItems.sort(compareTotals);
[/B]
for (var i = 0; i < selItems.length; i++) {
var itemNameStartPos = selItems[i].name.lastIndexOf("/");
selItems[i].name = indexName + i;
}


לא יודע עם הקוד עובד פשוט כתבתי אותו

כשראיתיJSFL בפעם הרישונה היתי בטוח שאף פעם לא היה לי מה לעשות עם הדבר הזה
אבל השבוע כתבתי את הפוסט השני JSFL Error handling יש לי עדיין שאלה פתוח על JSFL בפלאשו באותו עניין

--------------------
shvilam

Mogobe.com
FileNameFix
אטרקציות לחתונה
 
       Top
מאור בר
פורסם ב: 22/01/2010 , 10:25


חבר על


קבוצה: צוות האתר
הודעות: 3289
משתמש מספר: 70
תאריך הצטרפות: 13/03/2003



רעיון טוב, תודה עמית. flowers.gif

--------------------

_____עיצוב אינטראקטיבי

______MaorBar.com

---------------------------------------
The Dingo ate your baby
 
     Top
מאור בר
פורסם ב: 24/01/2010 , 04:24


חבר על


קבוצה: צוות האתר
הודעות: 3289
משתמש מספר: 70
תאריך הצטרפות: 13/03/2003



אשמח לקבל עזרה עם פונקציית המיון.
אני מנסה למיין אייטמים בשמות
page1
page2
page10
page212
וכו'
זה הסדר שהם מופיעים בספריה, זה גם הסדר ההגיוני לדעתי, מהקטן לגדול.

מה שקורה זה שבמיון כל הסדר מתבלגן ופתאום אייטם 10 הופך להיות הראשון ומקבל את השם הראשון למשל newPage1... אחריו מה שהיה 222 הוא השני, אחריו 22, אחריו 35...
לא מבין את זה.
אולי אפשר פשוט למיין לפי הערך המספרי שמופיע אחרי הסטרינג page בשם המוביקיפ?

--------------------

_____עיצוב אינטראקטיבי

______MaorBar.com

---------------------------------------
The Dingo ate your baby
 
     Top
shvilam
פורסם ב: 24/01/2010 , 08:52
user avatar

חבר קהילה ותיק


קבוצה: אושיות הקהילה
הודעות: 671
משתמש מספר: 30
תאריך הצטרפות: 1/03/2003



CODE
function compareNames(a, b) {
var aNum = parseInt(a.name.replace("page",""));
var bNum = parseInt(b.name.replace("page",""));
if (nameA < nameB) {return -1}
if (nameA > nameB) {return 1}
return 0;
}


כן רעיון טוב פשוט תחליף את פונקציה המיון
( נכבתב בלי להריץ )

--------------------
shvilam

Mogobe.com
FileNameFix
אטרקציות לחתונה
 
       Top
מאור בר
פורסם ב: 24/01/2010 , 11:07


חבר על


קבוצה: צוות האתר
הודעות: 3289
משתמש מספר: 70
תאריך הצטרפות: 13/03/2003



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

--------------------

_____עיצוב אינטראקטיבי

______MaorBar.com

---------------------------------------
The Dingo ate your baby
 
     Top
shvilam
פורסם ב: 24/01/2010 , 11:10
user avatar

חבר קהילה ותיק


קבוצה: אושיות הקהילה
הודעות: 671
משתמש מספר: 30
תאריך הצטרפות: 1/03/2003



הא זה קל למה זה לא עובד כי אתה צריך שי בעיה בשורות של ההשוואה

if (aNum < bNum ) {return -1}
if (aNum > bNum ) {return 1}

זו הבעיה

--------------------
shvilam

Mogobe.com
FileNameFix
אטרקציות לחתונה
 
       Top
מאור בר
פורסם ב: 24/01/2010 , 11:38


חבר על


קבוצה: צוות האתר
הודעות: 3289
משתמש מספר: 70
תאריך הצטרפות: 13/03/2003



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

מה צריך?
לכתוב את פונקציית המיון בצורה כזו שהסדר המתקבל של האובייקטים צריך להיות הגיוני, כלומר לקחת מהספריה לפי הסדר הבא:
mc1
mc5
mc10
mc11
mc11b
mc11c
mc11z
mc20
mc22
mc225

התוצאה צריכה להיות (כתבתי = כדי להבהיר איזה שמות חדשים קיבלו הקליפים ממקודם):
new1 = mc1
new2 = mc5
new3 = mc10
new4 = mc11
new5 = mc11b
new6 = mc11c
new7 = mc11z
new8 = mc20
new8 = mc22
new9 = mc225


בהצלחה...

--------------------

_____עיצוב אינטראקטיבי

______MaorBar.com

---------------------------------------
The Dingo ate your baby
 
     Top
gideonstk
פורסם ב: 25/01/2010 , 16:04


חבר קהילה חדש


קבוצה: רשומים
הודעות: 98
משתמש מספר: 2906
תאריך הצטרפות: 5/04/2007



יש בלינק הבא דוגמא למיון כמו שאתה צריך:

לינק
 
     Top
מאור בר
פורסם ב: 27/01/2010 , 16:11


חבר על


קבוצה: צוות האתר
הודעות: 3289
משתמש מספר: 70
תאריך הצטרפות: 13/03/2003



לפי הטרייס אני רואה שהבעיה עדיין מתרחשת, תראה את המוביקליפ האחרון, הוא אמור להיות שני (וגם הלפני-אחרון לא במקום).
CODE
XXXX1 (movie clip)
XXXX10 (movie clip)
XXXX11 (movie clip)
XXXX111 (movie clip)
XXXX22 (movie clip)
XXXX222 (movie clip)
XXXX35 (movie clip)
XXXX9 (movie clip)


--------------------

_____עיצוב אינטראקטיבי

______MaorBar.com

---------------------------------------
The Dingo ate your baby
 
     Top
מאור בר
פורסם ב: 7/02/2010 , 15:37


חבר על


קבוצה: צוות האתר
הודעות: 3289
משתמש מספר: 70
תאריך הצטרפות: 13/03/2003



זהו - עובד סוף סוף.
תודה לאיציק ארזוני ולעידו שעזרו לפתור את כל הבלאגן הזה...

CODE
// Set reference to document elements
var DOM = fl.getDocumentDOM();
var LIB = DOM.library;
//
 
function compareNames(a, b) {
var aNum = parseInt(a.name.replace("page",""));
var bNum = parseInt(b.name.replace("page",""));
if (a.length > b.length) {return 1} else if (a.length < b.length) {return -1}
if (aNum < bNum ) {return -1}
if (aNum > bNum ) {return 1}
return 0;
}
 
function renameElementsInLib (indexName, startIndex) {
var selItems = LIB.getSelectedItems();
selItems = selItems.sort(compareNames);
for (var i = 0; i < selItems.length; i++) {
var itemNameStartPos = selItems[i].name.lastIndexOf("/");
selItems[i].name = indexName + Number(Number(startIndex) + i);

}
}
var prefix = prompt ("Prefix Name:");
var startIndex = prompt ("Start Index Number:");
renameElementsInLib (prefix, startIndex);


--------------------

_____עיצוב אינטראקטיבי

______MaorBar.com

---------------------------------------
The Dingo ate your baby
 
     Top
1 משתמשים צופים בנושא זה (1 אורחים ו 0 משתמשים אנונימיים)
0 משתמשים:
10 תגובות מאז 22/01/2010 , 02:50 עקוב אחר נושא זה | שלח נושא זה באימייל | הדפס נושא זה

<< חזור אל אלגוריתמיקה וקוד מתקדם

 




[ זמן טעינה: 0.0387 ]   [ משתמש ב13 שאילתות ]   [ מופעלת דחיסת GZIP ]