PDA

Просмотр полной версии : определение класса


aristov
27.04.2009, 00:02
Ради самообразования хочу написать маленькое web-приложение (php+html) с админкой на flex(+php). Если конкретнее, - психологическое тестирование.

Создал пустой проект flex ("psyhotest"). Думаю, что для работы со списком тестов мне потребуется два класса. Один - для управления списком. Другой - для управления тестами и вопросами к ним.

Далее иду в гугль по запросу "создание класса flex". В результате генерирую следующее (содержимое файла psyholist.as): package {
public class psyholist{
public var list:Array;
public function psyholist(){
}
}
}
Что такое package и как им пользоваться - не разобрался. В примерах после package где-то указывается название, а где-то нет.

в файле psyhotest.mxml пытаюсь использовать:
<mx:Script>
<![CDATA[
import psyholist;
public var a1:psyholist = psyholist();
]]>
</mx:Script>
но получаю ошибку: "Неправильное количество аргументов. Ожидается 1."

Если после package указать название psyholist, то получаю ошибку: "A file found in a source-path must have the same package structure '', as the definition's package, 'psyholist'." (тут вообще не понял, что они мне хотели сказать :) )

Bruiser
27.04.2009, 00:51
Что такое package и как им пользоваться - не разобрался. В примерах после package где-то указывается название, а где-то нет.
Имя пакета, папка, в которой лежит класс. Если не указан - значит корень проекта.

<mx:Script>
<![CDATA[
import psyholist;
public var a1:psyholist = psyholist();
]]>
</mx:Script>
Нужно
public var a1:psyholist = new psyholist();

wvxvw
27.04.2009, 15:32
Имена классов - с прописной.
пакет без названия (дефолтный пакет) не рекомендуется использовать - в зависимости от версии билдера вам должны были об этом тоже предупреждение выдать.
Почему ожидается 1 аргумент - если вы используете класс таким образом (без new) то компилятор думает что вы пытались конвертировать тип, а не создать новый объект.