Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Путь до классов import (http://www.flasher.ru/forum/showthread.php?t=107009)

Sem3D 24.01.2008 01:11

Путь до классов import
 
Ситуация следующая:
..
|- dir [main] // папка классов для Main.fla
|- dir [ext]
| |- dir [main] // папка классов для Ext.fla
| |- Ext.fla
|- Main.fla

Вопрос: Как написать import в файле Ext.fla, если я хочу использовать класс из Main.fla ?
Или все *.fla должны быть в одном каталоге?

BlooDHounD 24.01.2008 01:17

указать допольнительный путь к корню классов

Sem3D 24.01.2008 10:46

Цитата:

Сообщение от BlooDHounD
указать допольнительный путь к корню классов

Например. В данной ситуации что писать и где?

etc 24.01.2008 10:55

В CS3 это называется Class path.
А вообще говоря, папку ext держать в другом проекте не стоило.

Sem3D 24.01.2008 11:06

Цитата:

Сообщение от __etc
В CS3 это называется Class path.

Ну если все так просто, что и где мне написать?
Я поэтому и спрашиваю, потому что непонятно.:(

Цитата:

Сообщение от __etc
А вообще говоря, папку ext держать в другом проекте не стоило.

Это один и тотже проект. Просто много файлов. И чтобы не путаться, я раскидал их по разным папкам. И теперь мне нужно из вложенной папки обратиться к классу в корневой. Как?

wvxvw 24.01.2008 11:36

Паблиш сеттингс - Флеш - сеттингс - тыркнуть на кнопочку с мишенью, или вписать класпасс самому.

А вообще, для удобства... не принято класть классы в папки выше проекта - это действительно не удобно, мало того, еще и не понятно =)
Оптимально: классы использующиеся в разных проектах класть в отдельную заведенную для них папку\папки, классы непосредственно связанные с проектом - ниже по дереву.

Sem3D 24.01.2008 16:57

Нашел. Написал. Но что-то толку никакого.:(

В классе mainClip есть
Код:

public function Add():void {
...
}

Могу ли я написать в классе extClip
Код:

var mc:mainClip;
mc.Add();


wvxvw 24.01.2008 20:33

"Летели два крокодила, один зеленый, другой в африку..."
Написать точно можете, а вот, что оно делать будет исходя из имеющейся информации даже предположить трудно =)
  1. Чтобы флеш стал искать в нужной вам папке (не в той же папке, где находиться FLA) нужно прописать к ней путь (он, кажется, все-равно всегда абсолютный).
  2. Если класс является частью пакета, то нужно чтобы имя пакета совпадало с названием папки в которой он находится.
  3. Чтобы использовать в одном пакете классы из другого пакета нужно:
    1. чтобы пакет находился по одному из указанных класспассов.
    2. импортировать этот класс указав полное имя пакета + имя класса.

Sem3D 24.01.2008 20:50

..\main\mainClip.as
Код:

package main {

    dynamic public class mainClip extends MovieClip {
               
            public function mainClip() {
                       
        }

        . . .
       
              private function completeHandler(e:Event):void {
              root.mc.addChild(e.target.content as MovieClip);              // добавили загруженый клип extClip
            root.mc.ec = e.target.content as MovieClip;                // создали ссылку на клип
        }
              public function Add():void {
            ...
        }
    }
}

..\Ext\main\extClip.as
Код:

package main {

    dynamic public class extClip extends MovieClip {
               
            public function extClip() {
            // здесь хочу вызвать процедуру Add() из класса mainClip
            ...       
        }

    }
}

Как вызвать из extClip процедуру Add() класса mainClip?

wvxvw 25.01.2008 00:36

Ну, вы сами себе злой Буратина %) кто ж вас надоумил одинаково пакеты назвать? =)
А вообще, если класпасс к первому класу включен, то во втором нужно по-идее import main.mainClip; Вот ток не факт, что флеш его найдет =)


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

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