функция уровня пакета не работает - PullRequest
0 голосов
/ 19 августа 2010

После того, как я увидел методы в flash.utils пакете , я решил попробовать:

// inside file Test.as

package com.tests
{
 internal function packageFunction() {

 }
}

Но я получил:

AФайл, найденный в исходном пути «Test», должен иметь то же имя, что и определение класса в файле «packageFunction».

packageFunction - это функция, а не класс. Любая идея, что не так?

- обновление

Для тех, кто не знает, что такое «функция пакета», о которой я говорю, пожалуйста, посмотрите flash.util пакет методы.Я могу использовать это как:

flash.utils.getTimer();

Ответы [ 2 ]

2 голосов
/ 19 августа 2010

Ваш код находится в Test.as.Это должно быть в

com / tests / packageFunction.as

. Это следует тем же правилам, что и "нормальные" классы.Имя пакета и основного общедоступного символа должно указывать путь к каталогу и имя файла.

0 голосов
/ 19 августа 2010

Если ваш код находится в классе Test.as, вы уже находитесь внутри пакета, и у вас не может быть другого пакета внутри или снаружи пакета, то вы можете создать другой класс вне пакета

   package com.tests
   {
       public class Test
       {
           private var example:ClassExample = new ClassExample();
       }
   }

   //This class is only accessible in the Test class
   class ClassExample
   {
         public function ClassExample()
         {
         }
   }

Пример, который вы привели, является неправильным пониманием использования пакетов. Функции, описанные в документации, доступны в любом пакете, это не значит, что вы можете создать пакет в существующем классе для доступа к этим функциям.

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