Вход

Просмотр полной версии : include или Import и class


obiz
11.10.2008, 19:22
Помогите - туплю. Делал по мануалу.
Создал файл "TestClass.as"
содержание следующее

pacage
{
public class Name tmp.TestClass
{
}
}


сохранил в папке "tmp" директории с флешкой.

В первом кадре пытаюсь вставить строки
"import tmp.TestClass;"
"import tmp.*;
#include "tmp.TestClass.as"
и произвлдые от этого. При запуске отдачик ругается указывая либо а сому строчку либо на следующуюю и необьясняя причин. В чём ошибка?

Obi
11.10.2008, 19:29
в as2 нету ни «package», ни, тем-более, «pacage»
Путь к классу указывается вот так:
someFolder1.someFolder2.MyClass {
//...
}

obiz
11.10.2008, 19:30
а include?

Obi
11.10.2008, 19:32
что инклуд?

obiz
11.10.2008, 19:34
файл "tmp\TestClass.as"

public class Name TestClass
{
public Print()
{
trace("test class");
}
}


в кадре флешки:
tmp.TestClass AAA;

Не хочет.

Если писать AAA = tmp.TestClass();
AAA.Print();
то и не ругается и не реагирует..

Obi
11.10.2008, 19:44
public class myFolder1.myFolder2.MyClass extends Object {
public function MyClass() {
init();
}
private function init():Void {
trace("_");
}
public function myFunc():Void {
trace("myFunc called");
}
}


import myFolder1.myFolder2.MyClass;

var myClass:MyClass = new MyClass();
myClass.myFunc();

dimarik
11.10.2008, 19:46
файл "tmp\TestClass.as"

class tmp.TestClass {
public function TestClass() {
trace("TestClass constructor called!");
}
}
в кадре флешки:
import tmp.TestClass;
var testClassInstance:TestClass = new TestClass();

Obi, в AS2 нет понятия public class.

etc
11.10.2008, 19:48
Определитесь для начала, на какой версии языка вы пишете, затем синтаксис языка, затем изучите директивы.
А сейчас у вас невыразительная каша, сдобренная незнанием синтаксиса и даже английского языка.

obiz
11.10.2008, 19:52
dimarik - выглядит всё логично, но отладчик продолжает бредить:

Сцена=Сцена 1, Слой=Слой 1, Кадр=1: Линия 1: ';'
import tmp.TestClass;

Mur4ik
11.10.2008, 19:55
если не ошибаюсь в ас2 нет public или private классов...
Вы в классе пишете:
public Print()
{
trace("test class");
}
а что такое Print() функция или еще что либо не указываете... плюс даже если учесть что это должна быть функция, Вы же ее нигде потом не вызываете.

"в кадре флешки: tmp.TestClass AAA;" - не понятно что это, и что такое AAA?

class TestClass
{
public function TestClass()
{
trace("test class");
}
}

// в кадре пишете
var someVarName:TestClass = new TestClass();
// и в окошке оутпут увидете "test class"


с помощью include можно в класс включить какой-то кусок кода удовлетворяющий синтаксису кода внутри класса (но не другой класс!).
с помошью import вы задаете обращение к классу не указывая полный путь к package, а напрямую используя имя класса
import можно использовать как в кадрах так и в самом классе до описания класса
пример:
import com.adobe.docs.learnAs2.util.UserClass;
var myUser:UserClass = new UserClass();
// если не использовать import нам пришлось бы писАть так:
var myUser:com.adobe.docs.learnAs2.util.UserClass = new com.adobe.docs.learnAs2.util.UserClass();

// чувствуется разница?


updated
чуток с опозданием, пока писАл уже разжевали, вроде что к чему :)

obiz
11.10.2008, 19:56
Определитесь для начала, на какой версии языка вы пишете Не ругайтесь, если бы я выучил все директивы, то не писал бы тут... у меня Macromedia Flash MX. Это, как я понял AS 2.0. Вместо 2 строк ругани полезнее было бы написать общий вид синтаксиса в 2-х строках...

dimarik
11.10.2008, 19:59
obiz, под какую версию языка компилите?

obiz
11.10.2008, 20:00
// в кадре пишете
var someVarName:TestClass = new TestClass();
без импорта 0 реакции даже с учётом переноса трэйса в конструктор =(

Mur4ik
11.10.2008, 20:03
dimarik - выглядит всё логично, но отладчик продолжает бредить:
// следующий код подразумевает нахождение класса TestClass в папке tmp
// папка tmp должна находится в том же каталоге, что и .fla файл использующий класс
// если, конечно, путь к классам не указан в настройках экспорта или глобальном пути к классам
import tmp.TestClass;
собственно из-за этого компилятор, наверное и ругается

obiz
11.10.2008, 20:06
собственно из-за этого компилятор, наверное и ругается

не а. С импортом какраз и ругается. С дирректориями всё по указанному..

под какую версию языка компилите?

Macromedia Flash MX Portable 4 Версии... AS 2.0 если не ошибаюсь

Mur4ik
11.10.2008, 20:31
Вы бы исходники все предоставили, проблема быстрее бы решилась

obiz
11.10.2008, 20:35
сорсы

Obi
11.10.2008, 20:46
Obi, в AS2 нет понятия public class.
Упс, пардон.

Mur4ik
11.10.2008, 20:59
obiz в настройках экспорта поставьте ActionScript2 и все заработает...
(сейчас у вас в файле выставлен as1)

в Хелпе написано:
import statement
...
Availability: ActionScript 2.0; Flash Player 6

т.е досупно только для AS2

а еще лучше поставьте себе flash 8 или Adobe Flash CS3 (естественно триал версию 30-и дневную)