создание статической / классовой функции вне класса - PullRequest
1 голос
/ 12 февраля 2009

как сделать функцию класса с помощью ActionScript, мне нужно иметь несколько статических функций инструмента, которые легко использовать из других классов test = tools.rtrim (xx);

например. это не компилируется:

package com.my.tools
{
static function rtrim(string:String):String {
            return string.replace(/\s+$/,"");

        }
}

Ответы [ 2 ]

6 голосов
/ 12 февраля 2009

Если ваша коллекция инструментов становится больше, может быть полезно использовать функции верхнего уровня. Особенно, если вы хотите повторно использовать небольшой набор ваших «инструментов» в других проектах, не теряя при этом размер файла, компилируя неиспользуемые (что происходит, если вы включаете их все в один класс).

Для этого в папке вашего пакета вам нужно будет создать один файл для каждой функции. Каждый файл должен быть назван так же, как и связанная с ним функция. например содержимое каждого файла с именем rtrim.as будет выглядеть так:

package com.my.tools {

    public function rtrim(str:String) : String {

        return string.replace(/\s+$/,"");   
    }
}

Тогда вам просто нужно будет импортировать функцию верхнего уровня туда, где она вам нужна:

package my {

    import com.my.tools.rtrim;  

    public class Test 
    {
        rtrim("bla bla");
    }
}
6 голосов
/ 12 февраля 2009

Он должен быть присоединен к типу класса, а не к пакету

Попробуйте

package com.my.tools
{
     public class Tools
     {
         public static function rtrim(string:String):String 
         {
                return string.replace(/\s+$/,"");
         }
     }
}

Затем вы можете использовать его через Tools.rtrim ("yourString");

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