PDA

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


Tato
27.11.2011, 10:27
Доброго времени суток! Возникла проблемма с классам билдер упорно выдает ошибку 1180: Call to a possibly undefined method ...

//cristal.classes.test.as
package cristal.classes
{
public class Test
{
private var _test:String;

public function Test(str:String)
{
this._test = str;
}

public function return_str():String
{
return this._test;
}
}
}

//test.mxml


import cristal.classes.test;
....
protected function test_class(event:Event):void
{
var asd = new Test('asdf'); // сдесь ошибка 1180
}
....


Заранее благодарен.

Добавлено через 10 минут
Убрал строчку создания экземпляра, теперь ошибка в импорте

import lery.classes.Walls_class; //1172: Definition cristal.classes:Test could not be found.

goodguy
27.11.2011, 10:45
Следует навсегда усвоить, что АС3 (как и подавляющее большинство языков программирования) чувствителен к регистру, а значит test и Test - совершенно разные для него понятия.
Что же мы видим здесь:

import cristal.classes.test;

в то время как сам класс называется Test

Tato
27.11.2011, 10:51
Ошибка допущенна здесь на форуме в коде все норм, про регистр прекрасно знаю.
Все равно спасибо, за ответ.

Добавлено через 1 минуту
пробовал даже так:

import cristal.classes.*;

все равно выдает 1180

goodguy
27.11.2011, 10:55
Значит скорее всего ошибка в расположении классов в самом проекте. Возможно они лежат не по таким путям как указаны в импортах

Tato
27.11.2011, 11:01
Пути правильные
src -
--(default package)
--cristal
---classes
----test.as

Сейчас переименовал сам файл test.as на Test.as теперь импорт удачен, а при создании экземпляра ошибка сменилась на:
var asd = new Test('asdasd'); //1008: variable 'asd' has no type declaration.

Добавлено через 7 минут
Все разобрался, правильно так:

var asd: Test = new Test('asdf');

это все пхп, портит мну...

to goodguy: Спасибо за беседу (=

goodguy
27.11.2011, 11:08
Сейчас переименовал сам файл test.as на Test.as теперь импорт удачен
А как же тогда:
Ошибка допущенна здесь на форуме в коде все норм, про регистр прекрасно знаю.
?
Названия файлов исключением из правил не является.

а при создании экземпляра ошибка сменилась на:
Это не ошибка, а предупреждение. Надо типизировать переменные.

var asd:Test = new Test('asdasd')