Использование mx.charts в мобильном проекте Flex

Adobe заявляет, что диаграммы поддерживаются в мобильных проектах, но когда я пытаюсь измените следующие рабочие файлы (созданный проект с помощью File - New - Flex Mobile Project - Google Nexus One):

MyTest.mxml:

<?xml version="1.0" encoding="utf-8"?>
<s:MobileApplication 
      xmlns:fx="http://ns.adobe.com/mxml/2009" 
      xmlns:s="library://ns.adobe.com/flex/spark" 
      firstView="views.MyTestHome">
 <s:navigationContent>
  <s:Button label="Home"
     click="navigator.popToFirstView();"/>
 </s:navigationContent>

 <s:actionContent/>
</s:MobileApplication>

MyTestHome.mxml:

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

в новый MyTestHome.mxml:

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

 <fx:Script>
  <![CDATA[
   import mx.collections.*;

   [Bindable]
   private var medalsAC:ArrayCollection = 
    new ArrayCollection( [
    {Country: "USA", Gold: 35, Silver:39, Bronze: 29 },
    {Country:"China", Gold: 32, Silver:17, Bronze: 14 },
    {Country:"Russia", Gold: 27, Silver:27, Bronze: 38 } 
   ]);
  ]]>
 </fx:Script>

 <mx:PieChart id="chart" height="100%" width="100%"
     paddingRight="5" paddingLeft="5" color="0x323232"
     dataProvider="{medalsAC}" >

  <mx:series>
   <mx:PieSeries labelPosition="callout" field="Gold">
    <mx:calloutStroke>
     <s:SolidColorStroke weight="0" 
        color="0x888888" alpha="1.0"/>
    </mx:calloutStroke>
    <mx:radialStroke>
     <s:SolidColorStroke weight="0" 
        color="#FFFFFF" alpha="0.20"/>
    </mx:radialStroke>
    <mx:stroke>
     <s:SolidColorStroke color="0" 
        alpha="0.20" weight="2"/>
    </mx:stroke>
   </mx:PieSeries>
  </mx:series>
 </mx:PieChart> 
</s:View>

а также добавить

  • c: \ Program Files \ Adobe \ Adobe Flash Builder Burrito \ sdks \ 4.5.0 \ frameworks \ libs \ datavisualization.swc
  • c: \ Program Files \ Adobe \ Adobe Flash Builder Burrito \ sdks \ 4.5.0 \ frameworks \ libs \ sparkskins.swc
  • c: \ Program Files \ Adobe \ Adobe Flash Builder Burrito \ sdks \ 4.5.0 \ frameworks \ libs \ mx \ mx.swc

к пути сборки Flex (нажав кнопку «Добавить SWC»):

alt text

Затем происходит сбой с ошибкой:

Не удалось разрешить реализацию компонента.

У кого-нибудь есть идея?


person Alexander Farber    schedule 25.12.2010    source источник


Ответы (1)


Хорошо, это работает, вот что я настроил, используя стандартный SDK Hero, который поставляется с Flash Builder Burrito, я смог в конечном итоге получить эту работу. Я также тестировал сборку Hero 17689, и она, похоже, тоже работает нормально. Вам понадобятся только два swcs, импортированные из папок 4.5.0 \ frameworks \ libs: mx.swc и datavisualization.swc. После добавления этих двух мне также нужно было исправить пространства имен, чтобы его можно было распознать, собрать и запустить. alt text

TestMobileApp.mxml

<?xml version="1.0" encoding="utf-8"?>
<s:MobileApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                     xmlns:s="library://ns.adobe.com/flex/spark" firstView="views.TestMobileAppHome">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
</s:MobileApplication>

TestMobileAppHome.mxml

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:mx="library://ns.adobe.com/flex/mx" 
    xmlns:s="library://ns.adobe.com/flex/spark"
    xmlns:charts="mx.charts.*"
    xmlns:series="mx.charts.series.*"
    xmlns:chartClasses="mx.charts.chartClasses.*" 
    title="Test Chart">

<fx:Script>
    <![CDATA[
        import mx.charts.PieChart;
        import mx.collections.*;

        [Bindable]
        private var medalsAC:ArrayCollection = 
            new ArrayCollection( [
                {Country: "USA", Gold: 35, Silver:39, Bronze: 29 },
                {Country:"China", Gold: 32, Silver:17, Bronze: 14 },
                {Country:"Russia", Gold: 27, Silver:27, Bronze: 38 } 
            ]);
    ]]>
</fx:Script>

<charts:PieChart id="chart" height="100%" width="100%"
                 paddingRight="5" paddingLeft="5" color="0x323232"
                 dataProvider="{medalsAC}" >

    <charts:series>
        <series:PieSeries labelPosition="callout" field="Gold">
            <series:calloutStroke>
                <s:SolidColorStroke weight="0" 
                                    color="0x888888" alpha="1.0"/>
            </series:calloutStroke>
            <series:radialStroke>
                <s:SolidColorStroke weight="0" 
                                    color="#FFFFFF" alpha="0.20"/>
            </series:radialStroke>
            <series:stroke>
                <s:SolidColorStroke color="0" 
                                    alpha="0.20" weight="2"/>
            </series:stroke>
        </series:PieSeries>
    </charts:series>
</charts:PieChart> 

person shaunhusain    schedule 03.01.2011
comment
Потрясающий! Завтра протестирую. Как установить более новую версию Hero SDK? Привет из Германии - person Alexander Farber; 04.01.2011
comment
Немного поискал, но нашел его для загрузки здесь: opensource.adobe. com / wiki / display / flexsdk / Download + Flex + Hero, вы просто получаете zip-архив и извлекаете его в какую-либо папку, а затем в Flash Builder / Eclipse в Window- ›Настройки-› Flash Builder- ›Установленные Flex SDKS нажимают Добавьте кнопку и перейдите в папку, в которую вы все извлекли, я обычно храню все это в папке sdks в папке установки flash Builder, чтобы все было в порядке. - person shaunhusain; 04.01.2011
comment
Не могли бы вы добавить заголовок для представления TestMobileAppHome.mxml, пожалуйста? Я по-прежнему получаю сообщение об ошибке: диаграммы префиксов для диаграмм элементов: PieChart не привязан. - person Alexander Farber; 04.01.2011
comment
Извините, кнопка кода в SO не всегда дружелюбна со мной, она там просто не отображалась, теперь мне хорошо, дайте мне знать, если вы все еще не видите или зависаете. - person shaunhusain; 04.01.2011