Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   как импортировать movieclip(swc) в flex project (http://www.flasher.ru/forum/showthread.php?t=132700)

Vishapakahr 18.11.2009 16:55

как импортировать movieclip(swc) в flex project
 
Народ помогите пожалуйста , я хочу импортировать мовиклип из флеша в флекс . Делать это на Actionscript project е умею

например на флеше я создал movieclip с названием ellips , експортировал во ellips.swc
и импортировал в флекс , и написав такой код у меня появляется мовиклип .

Код AS3:

package {
        import flash.display.Sprite;
        public class elipsner extends Sprite
        {
                public function elipsner()
                {
                        var elips:MovieClip=new ellips();
                        addChild(elips);
                }
        }
}

хочу узнать аналогичный способ во flex project е , с помощью MXML и AS3 .

wvxvw 18.11.2009 19:20

То, что вы написали, это в принципе и есть AS3 :)
Ну, по мелочам, нехорошо, например, классы должны начинаться с прописной, нужно обязательно вызывать super() в начале конструктора, крайне желательно указывать объект вызывающий метод.
Но это мелочи, в остальном все должно работать так же.
Если интересует MXML, вот вам 2 варианта:
http://livedocs.adobe.com/flex/3/htm...t=embed_3.html
Офф мануал разработчика.
http://kb2.adobe.com/community/publi...sid_52670.html
И как это можно немного оптимизировать :)

Vishapakahr 19.11.2009 13:06

Цитата:

Сообщение от wvxvw (Сообщение 866534)
То, что вы написали, это в принципе и есть AS3 :)
Ну, по мелочам, нехорошо, например, классы должны начинаться с прописной, нужно обязательно вызывать super() в начале конструктора, крайне желательно указывать объект вызывающий метод.
Но это мелочи, в остальном все должно работать так же.
Если интересует MXML, вот вам 2 варианта:
http://livedocs.adobe.com/flex/3/htm...t=embed_3.html
Офф мануал разработчика.
http://kb2.adobe.com/community/publi...sid_52670.html
И как это можно немного оптимизировать :)

знаю что AS3 , просто случайно выбрал тагда AS1,2 , сейчас уже редактировал
и поставил AS3 .

я просто имел ввиду вот что

Код AS3:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
        <mx:Script>
        <![CDATA[
        import flash.display.Sprite;
        public function elipsner():void{
        var elips=new ellips();
        addChild(elips);
        }
        ]]>
        </mx:Script>
</mx:Application>

тоисть пишу тоже самое аналогичным способом во флекс проекте и у меня мови клип не появляется .

если попрошу немогли бы вы написать простой код в flex project е в котором просто появляется мовиклип ?

wvxvw 19.11.2009 14:12

Когда вы говорите Flex - что вы имеете в виду?
  • AS3 - так вы уже написали.
  • AS3 + Flex framework - [Embed()] метатег для встраивания или скомпилируйте SWC и используйте класс от туда. + Читайте следующий пункт.
  • MXML + Flex framework - используйте SWFLoader / Image или Loader + UIComponent.addChild() для загрузки и @Embed() мета тег для встраивания. Имейте в виду, что для того, чтобы добавить во фрейморковский дисплей лист объект он должен либо имплементить кучу интерфейсов, либо наследоваться от UIComponent (который эти интерфейсы уже имплементит)
  • Просто MXML (без участия флексового фреймворка) - смотрите примеры по второй ссылке.

* Да, еще важный момент - <mx:Script> может содержать только объявления переменых и функций. Технически, он может содержать и вызовы функций, но область видимости их вызова будет совсем не та, что вы думаете, и, вобщем, лучше их там не вызывать.

udaaff 19.11.2009 15:25

Заверните в UIComponent...
Код AS3:

package
{
        import mx.core.UIComponent;
 
        public class MyComponent extends UIComponent
        {
                public function MyComponent()
                {
                }
 
                private var ellipse:Ellipse;
 
                override protected function createChildren():void
                {
                        super.createChildren();
 
                        ellipse = new Ellipse();
                        addChild(ellipse);
                }
 
        }
}

Код:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="*">
        <local:MyComponent/>
</mx:Application>


Vishapakahr 19.11.2009 15:59

Цитата:

Сообщение от wvxvw (Сообщение 866720)
Когда вы говорите Flex - что вы имеете в виду?
  • AS3 - так вы уже написали.
  • AS3 + Flex framework - [Embed()] метатег для встраивания или скомпилируйте SWC и используйте класс от туда. + Читайте следующий пункт.
  • MXML + Flex framework - используйте SWFLoader / Image или Loader + UIComponent.addChild() для загрузки и @Embed() мета тег для встраивания. Имейте в виду, что для того, чтобы добавить во фрейморковский дисплей лист объект он должен либо имплементить кучу интерфейсов, либо наследоваться от UIComponent (который эти интерфейсы уже имплементит)
  • Просто MXML (без участия флексового фреймворка) - смотрите примеры по второй ссылке.

* Да, еще важный момент - <mx:Script> может содержать только объявления переменых и функций. Технически, он может содержать и вызовы функций, но область видимости их вызова будет совсем не та, что вы думаете, и, вобщем, лучше их там не вызывать.

спасибо !

как видите я всего лишь начинающий , работал толька на flash CS4 , и вот вот
хочу переходить на флекс , так что думаю мне еше много надо потрудится .

Добавлено через 12 минут
Цитата:

Сообщение от udaaff (Сообщение 866741)
Заверните в UIComponent...
Код AS3:

package
{
        import mx.core.UIComponent;
 
        public class MyComponent extends UIComponent
        {
                public function MyComponent()
                {
                }
 
                private var ellipse:Ellipse;
 
                override protected function createChildren():void
                {
                        super.createChildren();
 
                        ellipse = new Ellipse();
                        addChild(ellipse);
                }
 
        }
}

Код:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="*">
        <local:MyComponent/>
</mx:Application>



спасибо , это сработало :)

Добавлено через 25 часов 32 минуты
udaaff

то же самое на flash builder beta 2 делаю не сработывает ( такой error дает на
MXML e .

the prefix "local" for element "local:MyComponent" is not bound
что нужно делать ? пожалуйста это очень важно ! а срабатывал у меня на
flex builder 3 .

JekelSkaz 22.11.2009 05:25

пропиши в главном mxml коде ссыль на as скрипт "component.as" допустим:

Код:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="*">
        <mx:Script source="component.as" />
        <local:MyComponent/>
</mx:Application>



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

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