2013-02-25 1 views
1

Я создал проект библиотеки Flex, содержащий файл .MXML с одним компонентом (кнопка). Это называется Button.mxml в пакете myLibrary.views.Как включить mxml componentnent из библиотеки Flex в другой проект Flex?

Затем я создал другой проект Flex Mobile, в который я хочу включить кнопку из моего проекта библиотеки. Этот проект относится к ранее созданной библиотеке.

Я не могу найти ответ о том, как этого достичь.

Могу ли я добавить его как-то как mxml componentnent?

<?xml version="1.0" encoding="utf-8"?> 
    <   s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
      xmlns:s="library://ns.adobe.com/flex/spark" 

      applicationDPI="240"> 
<fx:Declarations> 
    <!-- Place non-visual elements (e.g., services, value objects) here --> 
</fx:Declarations> 

<fx:Script> 
    <![CDATA[ 
     import myPackage.views.Button; // this is the package containing Button.mxml 

    ]]> 
</fx:Script> 
<myPackage.Views.Button id="myButton" /> // is this possbile somehow ??? 

    </s:Application> 

Спасибо!

ответ

3

Сначала обязательно добавьте другой проект в свой путь к библиотеке. Вы можете сделать это, добавив созданный SWC в папку libs или добавив его в путь к библиотеке. Если оба проекта находятся в одном рабочем пространстве Flash Builder, вы можете использовать кнопку «Добавить проект» на вкладке библиотеки.

Далее, чтобы использовать новый файл Button в MXML, вы должны импортировать пространство имен в теге MXML верхнего уровня; что-то вроде этого:

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:myPackage="myPackage.views.*" 
       applicationDPI="240"> 

Синтаксис очень похож на то, что Flex делает для своих собственных пакетов. Кроме того, вы, вероятно, не прошли процесс создания URL-адреса пространства имен, поэтому вы используете имя пакета. Не создавая URL-адрес пространства имен, в большинстве случаев это скорее головная боль, чем это стоит.

Затем вы можете использовать пользовательские кнопки, как это:

<myPackage:Button id="myButton" /> 

Это такой же синтаксис, как и другие компоненты Flex; который составляет namespace:ComponentName.

Вы не можете использовать компонент в MXML на основе инструкции import в ActionScript; но у вас была правильная идея.

+0

Это был очень полезный ответ. Является ли хорошей практикой использование библиотек? Я хочу извлечь общие функциональные возможности и представления в таких библиотеках, чтобы я мог использовать их в нескольких проектах. Спасибо! –

+1

Да, если вы хотите повторно использовать компонент из нескольких библиотек проектов, это лучший способ сделать это. – JeffryHouser

Смежные вопросы