2009-02-23 17 views
6

में पैरामीटर की मनमानी संख्या क्या एक्शनस्क्रिप्ट 3.0 पैरामीटर की मनमानी संख्या को स्वीकार करने के लिए किसी भी माध्यम की पेशकश करता है? मैं आमतौर पर .NET का उपयोग करता हूं, लेकिन मुझे एक परियोजना के लिए AS3 का उपयोग करने के लिए मजबूर किया जा रहा है और फ़ंक्शन ब्लाह (पैराम्स डबल [] x) के साथ कुछ सहायक है, जो एक सहायक लाइब्रेरी के लिए बहुत ही बढ़िया होगा।एएस 3

धन्यवाद; बाकी पैरामीटर

उत्तर

14

चेक आउट: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/statements.html#..._(rest)_parameter

package { 
    import flash.display.MovieClip; 

    public class RestParamExample extends MovieClip { 
    public function RestParamExample() { 
     traceParams(100, 130, "two"); // 100,130,two 
     trace(average(4, 7, 13));  // 8 
    } 
    } 
} 


function traceParams(... rest) { 
trace(rest); 
} 

function average(... args) : Number{ 
    var sum:Number = 0; 
    for (var i:uint = 0; i < args.length; i++) { 
    sum += args[i]; 
    } 
    return (sum/args.length); 
} 
+0

क्या तर्क के लिए प्रकार निर्दिष्ट करना संभव है? यानी, ... तर्क: int? –

+2

कभी नहीं - आप नहीं कर सकते –

3

(सी) की तरह एक अंडाकार का प्रयास करें ...

function trace_all (... args): void { 
    for each (a in args) { 
     trace (a); 
    } 
} 
0

आप आदेश दिया मूल्यों की एक अनिर्धारित संख्या पारित करने के लिए चाहते हैं, बस एक सरणी पारित

function foobar(values:Array):void 
{ 
    ... 
} 


foobat([1.0, 3.4, 4.5]); 
foobat([34.6, 52.3, 434.5, 3344.5, 3562.435, 1, 1, 2, 5]); 

आप नाम वाले पैरामीटर जहां केवल उनमें से कुछ तो पारित कर रहे हैं का उपयोग पास करना चाहते हैं एक वस्तु

function woof(params:object):string 
    { 
     if (params.hasProperty('name')) { 
      return name + "xxx"; 
     } 
     ... 
    } 

    woof({name:'Joe Blow', count: 123, title: 'Mr. Wonderful'}); 
2

"rest" पैरामीटर के अलावा, वहाँ एक "arguments" वस्तु है।

function foo() { 
    for (var i:Number = 0; i < arguments.length; i++) { 
     trace(arguments[i]); 
    } 
} 
संबंधित मुद्दे