Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Попытка экспорта символов в FlashDevelop (http://www.flasher.ru/forum/showthread.php?t=206296)

dimaMJ 26.01.2014 00:51

Попытка экспорта символов в FlashDevelop
 
В общем у меня возникла такая проблема, создал проект в FlashDevelop и в Flash CS6, проект Flash CS6 сохранил в папке src проекта FlashDevelop.
Далее, в Свойствах в Flash, в поле класс, указал Main.
Создал символ в флеше, экспортировал его в AS.
В классе main, вывел его на экран таким образом.
Код AS3:

package 
{
  import flash.display.Sprite;
  import flash.display.MovieClip;
 
  public class Main extends Sprite
  {
      private var circle:MovieClip = new mc_circle();
 
      public function Main ():void
      {
 
        circle.x = 350;
        circle.y = 60;
 
                  addChild(circle);
 
      }
}
}

mc_circle - это класс символа.
Все вывело, символ появился в заданных координатах. Далее, решил создать новый класс, создал экземпляр этого класса в классе Main, и сделал точно так же, в результате символ не выводился. Сам класс видит, писал trace. Запуск приложения делаю из Flash. Как решить эту проблему? уже и пробовал, экспортировать swc и обращаться и всеравно тишина. Как я понял, второй класс не связан со сценой. Но решить эту проблему так и не удалось, в Main все работает, а в другом классе тишина. Помогите решить эту проблему.

Добавлено через 19 минут
попробовал запуск во flashdevelop, и попробовал вывести модели из swc на сцену, swc лежит в lib.
В итоге, опять же символ вывелся в главном классе, а в остальных не выводится, уже категорически не знаю в чем дело.
Код AS3:

package 
{
 
        import flash.display.Sprite;
        import flash.events.Event;
 
 
        [Frame(factoryClass="Preloader")]
        public class Main extends Sprite
        {
                public _cl:First = new First();
 
                public function Main():void
                {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void
                {       
                        addChild(new cub()); //беру символ из swc
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        // entry point
                }
 
        }
 
}


es2 26.01.2014 01:36

Код AS3:

package
{
        import flash.display.Sprite;
        import flash.display.Stage;
        import flash.display.StageScaleMode;
        import flash.events.Event;
 
        public class DocumentRoot extends Sprite
        {
                // Храним сцену в статической переменной
                public static var _st_:Stage;
 
                // constructor code
                public function DocumentRoot()
                {       
                        // Инициализирует переменную сцены для обращения к ней из любого места программы
                        if ((DocumentRoot._st_=stage)) this.InitProject();
                        else this.addEventListener(Event.ADDED_TO_STAGE, this.InitProject);
                }
 
                private function InitProject(e:Event = null):void
                {
                        if (e)
                        {
                                this.removeEventListener(Event.ADDED_TO_STAGE, this.InitProject);
                                DocumentRoot._st_ = stage ;
                        }
                        stage.scaleMode = StageScaleMode.SHOW_ALL;
                        // Убирает рамку объекта, если он в фокусе
                        stage.stageFocusRect = false;
                        // ... далее код самой программы, например, new Main();
                        new Main();
                }
 
 
        }
}
 
class Main
{
        public function Main()
        {
                // Обращение к сцене через статическую переменную
                DocumentRoot._st_.addChild(new cub())
        }
}


Akopalipsis 26.01.2014 01:43

Этот код для FD?)

dimaMJ 26.01.2014 02:50

Цитата:

Сообщение от es2 (Сообщение 1158095)
Код AS3:

package
{
        import flash.display.Sprite;
        import flash.display.Stage;
        import flash.display.StageScaleMode;
        import flash.events.Event;
 
        public class DocumentRoot extends Sprite
        {
                // Храним сцену в статической переменной
                public static var _st_:Stage;
 
                // constructor code
                public function DocumentRoot()
                {       
                        // Инициализирует переменную сцены для обращения к ней из любого места программы
                        if ((DocumentRoot._st_=stage)) this.InitProject();
                        else this.addEventListener(Event.ADDED_TO_STAGE, this.InitProject);
                }
 
                private function InitProject(e:Event = null):void
                {
                        if (e)
                        {
                                this.removeEventListener(Event.ADDED_TO_STAGE, this.InitProject);
                                DocumentRoot._st_ = stage ;
                        }
                        stage.scaleMode = StageScaleMode.SHOW_ALL;
                        // Убирает рамку объекта, если он в фокусе
                        stage.stageFocusRect = false;
                        // ... далее код самой программы, например, new Main();
                        new Main();
                }
 
 
        }
}
 
class Main
{
        public function Main()
        {
                // Обращение к сцене через статическую переменную
                DocumentRoot._st_.addChild(new cub())
        }
}


спасибо, пробовал, но в других классах опять же тишина, обьекты не добавляются на сцену. а я не хочу в одном as файле писать все )

Добавлено через 4 минуты
если что инфу про экспорт брал тут, но получилось только так же как и в уроках, в классе main, а в других нет.
http://www.regul-flash.com/pages/kom...u-v-flash-ide/
http://nub.com.ua/2011/09/display-ob...y-list-in-as3/

es2 26.01.2014 11:44

Цитата:

Сообщение от dimaMJ (Сообщение 1158101)
спасибо, пробовал, но в других классах опять же тишина, обьекты не добавляются на сцену. а я не хочу в одном as файле писать все )
...

Незамысловатая мысль, которую я пытаюсь выразить, сводится к следующему:
Обращение к сцене через статическую переменную (в данном примере это DocumentRoot._st_) в каждом классе, где требуется сцена
Либо как вариант можно каждый класс расширять самим Stage, тогда обращение к сцене будет через указатель this - но это по-моему уже "велосипед"

dimaMJ 26.01.2014 11:59

Цитата:

Сообщение от es2 (Сообщение 1158108)
Незамысловатая мысль, которую я пытаюсь выразить, сводится к следующему:
Обращение к сцене через статическую переменную (в данном примере это DocumentRoot._st_) в каждом классе, где требуется сцена
Либо как вариант можно каждый класс расширять самим Stage, тогда обращение к сцене будет через указатель this - но это по-моему уже "велосипед"

а как собственно обратиться в другом классе к этой статической перемене ?

es2 26.01.2014 12:19

Цитата:

Сообщение от dimaMJ (Сообщение 1158109)
а как собственно обратиться в другом классе к этой статической перемене ?

Уже обсуждалось:
http://www.flasher.ru/forum/showthread.php?t=142177

ZackMercury 26.01.2014 13:01

Offtop:Ребят, я уже день, как установил FD, но до сих пор не понял, зачем делать проект в обеих средах? В чем вообще преимущество FD, если собирать всё равно в Flash?

Akopalipsis 26.01.2014 13:13

FD это редактор кода, настоящий, а адоби флеш, это инструмент для создания анимации.
И Вы немного ошиблись, рисуют в адоби, а собирают в FD. И за один день Вы разницы не заметите, хотя я сразу её почувствовал. Но вот теперь я его считаю самым лучшим и жить без него не смогу.

dimaMJ 26.01.2014 16:34

Вложений: 1
вот проект, в классе DocumentRoot.as все работает, квадрат выводит на экран, в классе Mains.as тишина.


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

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