Flash CS5 / AS3 - не удается найти (или не выполнится) класс Main Document - конструктор не вызван - PullRequest
3 голосов
/ 16 марта 2011

All

Я довольно новичок в AS3, так что это, наверное, очень тривиальный вопрос. Но я застрял.

Я работаю над новым приложением Flash (AS3). Приложение использует класс Document.

Вот как я настроил структуру папок:

  • папка "application"
  • папка «com» ​​

    • Папка «[mycompany]»

      • Папка «[myproject]»

Итак, во Flash CS5 в основном FLA поле Class: указывает на «com.mycompany.myproject.AppName»

Если щелкнуть маленький значок карандаша рядом с этим полем, Flash CS5 загрузит AppName.as в IDE.

В AppName.as первые несколько строк:

package com.mycompany.myproject {
    import flash.display.Sprite;
    public class AppName extends Sprite {

Когда я тестирую фильм, все работает так, как я ожидал. Пока все хорошо.

Однако, когда я пытаюсь сделать это на моем компьютере HOME, это не работает - конструктор в AppName.as никогда не вызывается.

Нет выходных сообщений или ошибок - просто ничего не происходит. Flash запускает SWF, как будто с ним не связан ни один ActionScript (нет кода временной шкалы).

Итак, на моем домашнем компьютере что-то отличается от офисного компьютера. Но я не могу понять, что.

Вот что я исключил:

  • Структура папок одинакова на обоих ПК (я использую Dropbox, поэтому я знаю, что они идентичны)
  • В Flash CS5 я не установил никаких глобальных путей к источникам (т. Е. «Правка»> «Настройки»> «ActionScript»> «Параметры ActionScript 3.0» - все поля пути пусты). Это одинаково на обоих ПК
  • Я установил конкретные пути к документам на обоих компьютерах (т. Е. В окне «Свойства», если я нажимаю «Изменить» рядом с настройками ActionScript, я получаю диалоговое окно «Дополнительные параметры ActionScript 3.0». В «Исходном пути»). вкладка, единственная запись - «.». Я предполагаю, что это означает, что Flash найдет все исходные файлы в или ниже папки, содержащей FLA / SWF.

Странная вещь ... на моем домашнем ПК, когда я нахожусь во Flash CS5 - если я нажимаю маленький значок карандаша рядом с полем Class:, AppName.as загружается в IDE. Таким образом, Flash знает, где найти документ.

Единственная проблема в том, что при тестировании фильма конструктор не вызывается.

Я знаю, что в этом классе нет ошибок, поскольку он отлично работает на моем офисном ПК.

Но, чтобы быть уверенным, я сократил класс до этого:

package com.mycompany.myproject {
    import flash.display.Sprite;
    public class AppName extends Sprite {
        public function AppName () {
            trace ("Working!");
        }
    }
}

На моем офисном ПК я вижу «Работаю» в окне вывода при тестировании этого; на моем домашнем ПК ничего нет.

Большое спасибо заранее за любые идеи или советы!

[UPDATE]

В ответ на несколько комментариев, вот скриншоты различных настроек: enter image description here

Вот полноразмерное изображение

Ответы [ 4 ]

1 голос
/ 16 марта 2011

Вот что вы можете попробовать: Перейдите в окно вывода и нажмите маленький значок в правом верхнем углу чуть ниже кнопки закрытия.В появившемся меню перейдите к уровню фильтра, установите для него значение «Подробно» и повторите попытку публикации.Это помогает?

1 голос
/ 16 марта 2011

Удаление «.as» из конца имени класса должно решить вашу проблему.

Flash IDE примет местоположение файла из полного имени класса.

0 голосов
/ 30 декабря 2013

Прошло много времени, но в случае, если кто-нибудь снова столкнется с проблемой.

Я только что столкнулся с этой проблемой сегодня, и, к счастью, я могу определить свою ошибку.Я по ошибке добавляю «: String», и это приводит к исчезновению класса документа из FLA.

if (floors = '') {
    floors:String = '{"floors":[{...'
}

, удаляя «not not-be-there»: String », класс документа возвращается в действие.

if (floors = '') {
    floors = '{"floors":[{...'
}
0 голосов
/ 19 марта 2011

Я знаю, что отвечать на ваш вопрос - это плохо, но я наконец-то понял.Это касалось букв в пути.

Вот подробности (на тот случай, если кому-то еще это интересно) ...

Оказывается, на компьютере, на котором я изначально создал приложение, на(мой офисный компьютер), путь, который я использовал:

  • папка "application"
  • > папка "com"
  • > -> "[mycompany]"папка
  • > -> -> папка «[MyProject]»

Итак, мой класс документа начинается:

package com.mycompany.MyProject {

Как я уже говорил, я использую Dropbox.

Итак, когда я запустил свой домашний ПК, Dropbox автоматически запускается и синхронизирует все.

Однако вот что создал Dropbox:

  • «приложение»папка
  • > папка "com"
  • > -> папка "[mycompany]"
  • > -> -> папка "[myproject]"

Обратите внимание, что слово myproject не пишется заглавными буквами.

Очевидно, что среда IDE Flash не чувствительна к регистру, поэтому она смогла найти документ Class (MyProject.as), когдаЯ трчтобы редактировать его.Тем не менее, компилятор должен быть, поэтому он не смог его найти.

Как только я изменил папку "myproject" на "MyProject", все заработало отлично.

Извините за такиеглупый вопрос.

...