2010-08-19 4 views
0

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

// inside file Test.as 

package com.tests 
{ 
internal function packageFunction() { 

} 
} 

Но я получил:

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

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

--update

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

flash.utils.getTimer(); 

ответ

2

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

COM/тесты/packageFunction.as

Это следует тем же правилам, как и «обычные» классы. Пакет и основное публичное имя символа должны обрабатывать путь к каталогу и имя файла.

+0

так, поэтому пакет [flash.utils] (http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/flash/utils/package.html) не нуждается в каждом методе внутри файл с тем же именем? Для вас, кто тоже поднял ...;) –

+0

, даже если первый метод имеет то же имя, что и пакет, второй дает сообщение об ошибке: «Файл, найденный в исходном пути, не может иметь более одного видимого извне определения «. –

+1

@Tom Brito. flash.utils - это пакет. Он может содержать общедоступные символы, такие как классы, интерфейсы, функции, переменные и константы. Каждый из этих символов должен быть определен в собственном файле. Для getTimer() или другого кода, родного для игрока, нет кода actionscript. Я не уверен, откуда у вас возникла идея, что «пакет flash.utils не должен иметь каждый метод внутри файла с тем же именем» ... –

0

Если ваш код находится в классе 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() 
     { 
     } 
    } 

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

Смежные вопросы