Страница 51 из 56

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Добавлено: 06 дек 2012, 21:40
XELAD
Господа, ну что же вы самого простого не посоветуете, как совет от gpv123 ? ;)
Прочитал про include:
Включает содержимое заданного файла, как если бы команды в файле были частью вызывающего сценария. Директива include вызывается во время компиляции. Следовательно, при внесении изменений в файл необходимо его сохранить и повторно скомпилировать SWF-файлы, в которых он используется.
Спасибо, gpv123!

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Добавлено: 07 дек 2012, 05:57
sanych_dv
А вы ставьте вопрос корректно. Я так понял, что вам надо подключать исполняемый код после компиляции.

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Добавлено: 02 янв 2013, 08:29
XELAD
Здравствуйте. Выше я уже задавал вопрос про разделение кода на несколько as. Ответом оказалась директива include, только никак не научусь ею пользоваться. Ситуация вся та же: из основного класса, который соотв-но находится в package, нужно из сотни функций вынести несколько в отдельный as.
Оригинал:

Код: Выделить всё

package{ import flash.display.MovieClip; public class MyActs extends MovieClip {  private function func1()  {}  private function func2() {} }}
Нужно вынести func2 из этого кода в другой as.

По-разному пробовал, уже и (Знаю, что классы не include):
 
MyActs.as^

Код: Выделить всё

package{ import flash.display.MovieClip; include "Part2.as"; public class MyActs extends MovieClip {  private function func1()  {} }}
Part2.as:

Код: Выделить всё

package{ import flash.display.MovieClip; public class MyActs extends MovieClip {  private function func2() {} }} 
Пакеты не могут быть вложенными, Private нельзя использовать вне пакетов, и ещё много новых для меня ошибок. Результат, который хочется примерно в этом коде и есть. Помогите советом, в яндексе особо не нашел. Спасибо!

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Добавлено: 02 янв 2013, 20:01
gpv123
XELAD, при компиляции include со своего места исчезает, а код из соответствующего файла вставляется на его место без изменений:

Код: Выделить всё

// MyActs.aspackage{  import flash.display.MovieClip;  public class MyActs extends MovieClip  {    private function func1() {}    include "Part2.as";  }}

Код: Выделить всё

// Part2.asprivate function func2() {}

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Добавлено: 03 янв 2013, 07:44
XELAD
gpv123
Сделал по вашему примеру, спасибо, всё работает. Только вот с Part2.as начинаются проблемы, все эти public нельзя использовать вне пакета, а private только в классах. В результате даже невозможно нажать кнопку автоформат, так как код полон ошибок... Создается впечатление, что разбиение одного as на несколько - это обмен шила на мыло.

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Добавлено: 03 янв 2013, 11:34
gpv123
XELAD писал(а):public нельзя использовать вне пакета, а private только в классах
Вообще-то и без include так делать нельзя.
Создается ощущение, что Вы не понимаете, что конкретно делает include.
include можно вставить в любом месте кода, абсолютно в любом, если, конечно, не нарушается базовый синтаксис. При этом никаких областей видимости не появляется. include просто вставляет на свое место то, что написано в файле. И все. Не больше, не меньше.

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Добавлено: 03 янв 2013, 13:25
XELAD
gpv123
Include я понимаю что делает, похожее есть и в php. Вы же в своем примере написали private function, и при проверке этого файла вывелась бы ошибка, что private нельзя использовать. Конечно, при компиляции всё это исчезает, но эти "ошибки" покоя не дают.

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Добавлено: 03 янв 2013, 14:18
gpv123
XELAD, этот файл не является классом, интерфейсом или чем-то еще. Там просто написано то, что Вы хотите вставить в другой файл. Его не нужно "проверять"

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Добавлено: 06 янв 2013, 23:36
grenium
Подскажите, как в adobe flash можно вставить уже готовый swf файл

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Добавлено: 07 янв 2013, 00:47
manticore