Просмотр полной версии : include или Import и class
Помогите - туплю. Делал по мануалу.
Создал файл "TestClass.as"
содержание следующее
pacage
{
public class Name tmp.TestClass
{
}
}
сохранил в папке "tmp" директории с флешкой.
В первом кадре пытаюсь вставить строки
"import tmp.TestClass;"
"import tmp.*;
#include "tmp.TestClass.as"
и произвлдые от этого. При запуске отдачик ругается указывая либо а сому строчку либо на следующуюю и необьясняя причин. В чём ошибка?
в as2 нету ни «package», ни, тем-более, «pacage»
Путь к классу указывается вот так:
someFolder1.someFolder2.MyClass {
//...
}
файл "tmp\TestClass.as"
public class Name TestClass
{
public Print()
{
trace("test class");
}
}
в кадре флешки:
tmp.TestClass AAA;
Не хочет.
Если писать AAA = tmp.TestClass();
AAA.Print();
то и не ругается и не реагирует..
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();
файл "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.
Определитесь для начала, на какой версии языка вы пишете, затем синтаксис языка, затем изучите директивы.
А сейчас у вас невыразительная каша, сдобренная незнанием синтаксиса и даже английского языка.
dimarik - выглядит всё логично, но отладчик продолжает бредить:
Сцена=Сцена 1, Слой=Слой 1, Кадр=1: Линия 1: ';'
import tmp.TestClass;
если не ошибаюсь в ас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
чуток с опозданием, пока писАл уже разжевали, вроде что к чему :)
Определитесь для начала, на какой версии языка вы пишете Не ругайтесь, если бы я выучил все директивы, то не писал бы тут... у меня Macromedia Flash MX. Это, как я понял AS 2.0. Вместо 2 строк ругани полезнее было бы написать общий вид синтаксиса в 2-х строках...
obiz, под какую версию языка компилите?
// в кадре пишете
var someVarName:TestClass = new TestClass();
без импорта 0 реакции даже с учётом переноса трэйса в конструктор =(
dimarik - выглядит всё логично, но отладчик продолжает бредить:
// следующий код подразумевает нахождение класса TestClass в папке tmp
// папка tmp должна находится в том же каталоге, что и .fla файл использующий класс
// если, конечно, путь к классам не указан в настройках экспорта или глобальном пути к классам
import tmp.TestClass;
собственно из-за этого компилятор, наверное и ругается
собственно из-за этого компилятор, наверное и ругается
не а. С импортом какраз и ругается. С дирректориями всё по указанному..
под какую версию языка компилите?
Macromedia Flash MX Portable 4 Версии... AS 2.0 если не ошибаюсь
Вы бы исходники все предоставили, проблема быстрее бы решилась
Obi, в AS2 нет понятия public class.
Упс, пардон.
obiz в настройках экспорта поставьте ActionScript2 и все заработает...
(сейчас у вас в файле выставлен as1)
в Хелпе написано:
import statement
...
Availability: ActionScript 2.0; Flash Player 6
т.е досупно только для AS2
а еще лучше поставьте себе flash 8 или Adobe Flash CS3 (естественно триал версию 30-и дневную)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.