перегрузка оператора в обходных решениях as3 - PullRequest
0 голосов
/ 14 марта 2011

Я знаю, что невозможно перегрузить операторы в as3, и я использовал функциональность get и set (это блестяще imho), однако сейчас я нахожусь в процессе создания цветового класса.

То, что я пытаюсь сделать, это цветовой класс, а затем подтипы rgb, hsl, hsv и так далее ... моя проблема в том, когда я делаю эти переменные, как мне сделать так, чтобы, когда я читаю их значение, они появлялись как уинт?

например, я хочу иметь возможность сделать это.

var myRGBcolour:RGB = new RGB(14,21,42);
someSprite.graphics.beginFill(myRGBcolour);     //for those of you who don't know,
                                                //this function expects a uint

Как мне этого добиться? Ранее я читал о значении функций, но из того, что я могу понять, вы можете использовать это только в том случае, если вы скажете что-то вроде myRGBcolour.valueOf(), но это противоречит цели, я мог бы просто сделать функцию myRGBcolour.toUint().

Спасибо заранее.

Ответы [ 2 ]

2 голосов
/ 07 ноября 2011

вы можете попытаться переопределить valueOf и сделать конкретное приведение:

someSprite.graphics.beginFill(0+myRGBcolour); // 0+ is similar to 0x

или, если вы предпочитаете:

someSprite.graphics.beginFill(myRGBcolour+0);

Эта конструкция используется в Пальцах

2 голосов
/ 14 марта 2011

beginFill () принимает uint, так что вы должны дать его.Я думаю, что метод toUint звучит как лучший план или свойство get.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...