When I have to pass the "args" to a function without super, it doesn't allow me
to use .apply(this,args) in all cases and if I pass them directly the recursive
increment occurs again... Aaaaaaaaaaaaaaahhhhhhhhhhhhh
I've looked at the SDK code and it's not clear to me how I can do it.
For example:
protected function fn_foo( ... args){
// fn_fooBis.apply(this, args) // not working
fn_fooBis(args);
}
Private function fn_fooBis(... args):void{
trace( args); // two nestings.
}
Hiedra
-----Mensaje original-----
De: Maria Jose Esteve <[email protected]>
Enviado el: domingo, 1 de diciembre de 2024 15:12
Para: [email protected]
Asunto: RE: Parameters of type paramArray
Perfect Josh, thanks.
When the paramArray is, for example, the second parameter, what would that look
like?
For example:
override protected function fn_hello(index:int, ... args){
// These are the tests I have done but none of them work for me
super.fn_hello.apply(index,args);
super.fn_hello.apply(index,[this].concat(args)); // Add "this" and, for
example, index 0 is not the first parameter of args but "this" (as expected)}
,,,
Hiedra
-----Mensaje original-----
De: Josh Tynjala <[email protected]> Enviado el: viernes, 29 de
noviembre de 2024 18:14
Para: [email protected]
Asunto: Re: Parameters of type paramArray
I think that this should do what you want:
super.reevalAccesControl.apply(this, args);
--
Josh Tynjala
Bowler Hat LLC <https://bowlerhat.dev>
On Thu, Nov 28, 2024 at 7:26 AM Maria Jose Esteve <[email protected]> wrote:
> Hi, I've always faced this problem, but I don't know how to give a
> definitive solution.
> Parameters of type paramarray increase their nesting from one call to
> another, for example:
>
> Public class ControllerFirst extends ControllerBase {
> ...
> private function fnmove():void{
> var foo:String = "hello";
> reevalAccessControl(foo);
> }
> ...
> override protected function reevalAccessControl(... args):void{
> // In the first call, from fnmove "arguments" you have
> an element [0] with a value "hello"
> super.reevalAccesControl(args);
> ...
> }
> }
>
> Public class ControllerBase
> {
> ...
> protected function reevalAccessControl(... args):void{
> // When this function is called from ControllerFirst
> arguments has an element [0] but this element in turn is an array of 1
> element and the value "hello" is found in args[0][0] on a second level
> ...
> }
> ...
> }
>
> I don't know if I have explained myself... I understand why it happens
> but I wonder if there is a way to pass this type of arguments so that
> the nesting level 0 is respected and a level is not added for each call.
>
> Thx.
> Hiedra
>
>