मेरे पास मूवीक्लिप्स की एक श्रृंखला है और मैं उन्हें मंच पर रखना चाहता हूं। इसलिए उन्हें अद्वितीय और यादृच्छिक रूप से चुना जाना है।एक ऐरे की यादृच्छिक तत्व चुनें एक्शनस्क्रिप्ट 3
मैं यह कैसे कर सकता हूं?
आपके समय के लिए धन्यवाद
मेरे पास मूवीक्लिप्स की एक श्रृंखला है और मैं उन्हें मंच पर रखना चाहता हूं। इसलिए उन्हें अद्वितीय और यादृच्छिक रूप से चुना जाना है।एक ऐरे की यादृच्छिक तत्व चुनें एक्शनस्क्रिप्ट 3
मैं यह कैसे कर सकता हूं?
आपके समय के लिए धन्यवाद
आप एक यादृच्छिक संख्या Math.random()
का उपयोग कर यह तो 0 और 1.
बीच की एक संख्या वापस आ जाएगी, सरणी के एक यादृच्छिक तत्व प्राप्त करने के लिए प्राप्त कर सकते हैं, इस का उपयोग करें:
function getRandomElementOf(array:Array):Object {
var idx:int=Math.floor(Math.random() * array.length);
return array[idx];
}
यदि आपके पास पहले से Array
है, तो आप एक यादृच्छिक प्रकार को परिभाषित करने में सक्षम होना चाहिए, फिर आप उन्हें आवश्यकतानुसार मंच में जोड़ सकते हैं।
//get your array as needed...
var myArray:Array = getYourMovieClipsArray();
//randomize it by "sorting" it...
myArray.sort(randomSort);
//do something with them...
for(var i:int=0;i<myArray.length;i++){
addChild(myArray[i]);
}
//sorting function
public function randomSort(objA:Object, objB:Object):int{
return Math.round(Math.random() * 2) - 1;
}
जब आप यादृच्छिक अनुक्रमणिका प्राप्त कर सकते हैं तो सरणी को सॉर्ट और पुन: व्यवस्थित क्यों करें? –
मैंने ओपी के प्रश्न में "अद्वितीय" के बारे में टिप्पणी मानी है कि वह यह सुनिश्चित करना चाहता था कि क्लिप कई बार नहीं खींचे गए थे। यदि वांछित है, तो आप मूवी क्लिप सरणी से मेल खाने के लिए इंडेक्स की एक सरणी बना सकते हैं ... इंडेक्स की सरणी को यादृच्छिक बनाएं ... फिर यादृच्छिक सूची 1 से एक बार तक डुबकी सुनिश्चित करने के लिए समाप्त हो जाएं। – scunliffe
हाँ, आप सही हैं! –
नमस्ते, उत्तर के लिए धन्यवाद, लेकिन मैं उन्हें सैट पर कैसे रख सकता हूं? मैंने addChild (सरणी [idx]) के साथ प्रयास किया है लेकिन काम नहीं कर रहा है; – CMS
'stage.addChild (getRandomElementOf (movieClipArray));' या 'stage.addElement (getRandomElementOf (movieClipArray));' –
आपको जोड़ने से पहले मूवीक्लिप्स के 'x' और 'y' गुणों को पहले ही सेट करना होगा (या आप इसे जोड़ने के बाद भी कर सकते हैं) –