So with your method I can do this:
Function.prototype.setScopeTo = function(object) {
var __method = this;
return function() {
__method.apply(object, arguments);
}
}
class x {
function setFocusHandler() {
var func = function() {
trace("this="+this) // scope is class x
}
label.onKillFocus = func;
label.onKillFocus.setScopeTo(this);
}
}
David Rorex wrote:
>In AS2 you can do:
>
>Function.prototype.setScopeTo = function(object) {
> var __method = this;
> return function() {
> __method.apply(object, arguments);
> }
>}
>
>//////
>
>class x {
> function setFocusHandler() {
> var func = function() {
> trace("this="+this) // scope is class x
> }
> label.onKillFocus = func.bind(this);
> }
>}
>
>////
>
>But this is just a variation on the Delagate.create(this, func) pattern
>
>-David R
>
>On 11/20/05, Nicolas Cannasse <[EMAIL PROTECTED]> wrote:
>
>
>>>hi nicolas,
>>>
>>>how hard would it be to create a scope method for functions? the method
>>>would take whatever you give it and put that function in to that scope.
>>>for example,
>>>
>>>class x {
>>> function setFocusHandler() {
>>> // label.owner = this;
>>> // set scope using the scope function part of Function class
>>> label.onKillFocus.scope(this)
>>> label.onKillFocus = function() {
>>> trace("this="+this) // scope is class x
>>> }
>>> }
>>>}
>>>
>>>
>>>
>>Not this way because it's not typable, but you'll be able to do the
>>following in haXe :
>>
>>label.onKillFocus = button.onClick;
>>
>>(*only* if onClick is declared as a function)
>>
>>This is like method closures in AS3, but it will work also for
>>Player6-7-8 :)
>>
>>Nicolas
>>
>>_______________________________________________
>>osflash mailing list
>>[email protected]
>>http://osflash.org/mailman/listinfo/osflash_osflash.org
>>
>>
>>
>
>_______________________________________________
>osflash mailing list
>[email protected]
>http://osflash.org/mailman/listinfo/osflash_osflash.org
>
>
>
>
>
_______________________________________________
osflash mailing list
[email protected]
http://osflash.org/mailman/listinfo/osflash_osflash.org