2012-04-04 8 views
0

Ich versuche, so etwas zu tun:Wie übergeben Sie Parameter an eine .onPress() in AS2?

var something = "someValue"; 

some_btn.onPress = function (something) { 
    someFunction(something); 
} 

function someFunction (argument) { 
    trace(argument); 
} 

Aber es Spuren „undefiniert“. Was wäre der richtige Weg, dies zu erreichen?

Antwort

1

onPress() Argumente nicht statt.

Sie könnten Ihre eigene Presse Funktion wie folgt machen:

Object.prototype.myPress = function(str:String):Void 
{ 
    // Delete old onPress. 
    if(this["onPress"] != undefined) delete this.onPress; 

    // Add new onPress. 
    this.onPress = function():Void 
    { 
     someFunction(str); 
    } 
} 

Mit Ihrer someFunction():

function someFunction(str:String):Void 
{ 
    trace(str); 
} 

Und dann implementieren wie folgt:

some_btn.myPress("hello"); 
+0

, die völlig der Trick funktioniert, Danke vielmals! (BTW, das ist das zweite Mal, dass Sie meinen Tag speichern) – CCrawler

+0

@CCrawler Und hoffentlich nicht das letzte :) – Marty

0

Dies funktioniert:

var something = "someValue"; 

some_btn.onPress = function() { 
    someFunction(something); 
} 

function someFunction (argument) { 
    trace(argument); 
} 

Alternativ wird dies auch funktionieren:

var something = "someValue"; 

some_btn.onPress = function() { 
    someFunction(); 
} 

function someFunction() { 
    trace(something); 
} 
0

Dies geschieht, weil Sie Ihre Parameter gleich der gloval Variablennamen Sie erstellt haben genannt:

var something = "someValue"; 
some_btn.onPress = function (something) { ... 

Dies "erstellt eine lokale Variable" mit dem gleichen Namen. Da lokale Variablen Präferenzen haben und die onPress keinen Wert senden, haben Sie undefined.

zu lösen, die Variable aus dem Event-Handler entfernen, wie net.uk.sweet vorgeschlagen:

some_btn.onPress = function() { ... 
Verwandte Themen