Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   include или Import и class (http://www.flasher.ru/forum/showthread.php?t=116815)

obiz 11.10.2008 19:22

include или Import и class
 
Помогите - туплю. Делал по мануалу.
Создал файл "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
чуток с опозданием, пока писАл уже разжевали, вроде что к чему :)


Часовой пояс GMT +4, время: 19:21.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.