3

私はこれで非常に新しいです。Android デバイス用の「Flex アプリケーション」モバイル アプリの構築。最新の Flex/FlashBuilder (4.6) を実行しています。

プロジェクトのプロパティを見る: ビルダー: Flex & AIR アプリケーション ビルダー Flex コンパイラ: 「デフォルトの SDK を使用します (現在は「Flex 4.6.0」) 私のデザイン ビューでは、MX DataGrid コントロールがまったく表示されません。コントロールをアプリに追加しました。このページの最後の例のコードを貼り付けます: http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf66ce9-7ff2.html

コンパイルすると、「コンポーネントの実装に解決できませんでした」というエラーが表示されます。これが私のコードです:

<?xml version="1.0" encoding="utf-8"?>
<!-- dpcontrols/DataGridPassData.mxml -->
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
                    xmlns:s="library://ns.adobe.com/flex/spark"
                    xmlns:mx="library://ns.adobe.com/flex/mx" 
                    title="Jobs List">
          <fx:Script>
                    <![CDATA[
                              import mx.collections.*;
                              private var DGArray:Array = [
                                        {Lease:'Bagby Heirs', Well:'1', Location:'Quitman', Customer:'Fair Oil Company', ScheduleDate:'2/23/2012', ServiceDate:'5/16/2012'},
                                        {Lease:'ITU', Well:'301', Location:'Ingram Trinity', Customer:'Southwest Operating, Inc.', ScheduleDate:'3/19/2012', ServiceDate:'4/25/2012'},
                                        {Lease:'ITU', Well:'81', Location:'ITU', Customer:'Southwest Operating, Inc.', ScheduleDate:'3/19/2012', ServiceDate:'4/25/2012'},
                                        {Lease:'Tolliver A', Well:'5', Location:'Turner Town', Customer:'SEDI', ScheduleDate:'4/16/2012', ServiceDate:'5/11/2012'},
                                        {Lease:'W R Cady', Well:'1', Location:'Coffield', Customer:'Green River Resource', ScheduleDate:'5/9/2012', ServiceDate:'4/10/2012'},
                                        {Lease:'Royal National Bar', Well:'2', Location:'Coffield', Customer:'Green River Resource', ScheduleDate:'5/9/2012', ServiceDate:'4/10/2012'},
                                        {Lease:'Pan American L', Well:'1', Location:'Chandler', Customer:'East Texas Oil & Gas', ScheduleDate:'5/14/2012', ServiceDate:'6/8/2012'},
                                        {Lease:'Paluxy B Sand', Well:'5', Location:'West Tyler', Customer:'Culver & Cain', ScheduleDate:'6/1/2012', ServiceDate:'5/25/2012'},
                                        {Lease:'Wh Pittman Hei', Well:'2', Location:'Quitman', Customer:'Southwest Operating, Inc.', ScheduleDate:'7/10/2012', ServiceDate:'6/18/2012'},
                                        {Lease:'Vivian Pruitt', Well:'1', Location:'Crow - Hwy 80M', Customer:'Buffco Productions, Inc.', ScheduleDate:'8/7/2012', ServiceDate:'8/29/2012'}
                              ];

                              [Bindable]
                              public var initDG:ArrayList;

                              //Initialize initDG ArrayList variable from the Array.
                              //If you use this technique to process an HTTPService,
                              //WebService, or RemoteObject result, use an ArrayCollection
                              //rather than an ArrayList.
                              public function initData():void {
                                        initDG=new ArrayList(DGArray);
                              }
                    ]]>
          </fx:Script>
          <!--s:states>
          <s:State name="loginState"/>
          <s:State name="State1"/>
          </s:states-->

          <fx:Declarations>

                    <!-- Place non-visual elements (e.g., services, value objects) here -->
                      <fx:Component className="AlertMsgDay">
                              <s:SkinnablePopUpContainer x="70" y="300">
                                        <s:TitleWindow title="Filtering" close="close()">
                                                  <s:VGroup horizontalAlign="center" paddingTop="8" paddingBottom="8" paddingLeft="8" paddingRight="8" gap="5" width="100%">
                                                            <s:Label text="This button will filter jobs to show only TODAY."/>
                                                            <s:Button label="OK" click="close()"/>
                                                  </s:VGroup>
                                        </s:TitleWindow>
                              </s:SkinnablePopUpContainer>
                    </fx:Component>

                    <fx:Component className="AlertMsgWeek">
                              <s:SkinnablePopUpContainer x="70" y="300">
                                        <s:TitleWindow title="Filtering" close="close()">
                                                  <s:VGroup horizontalAlign="center" paddingTop="8" paddingBottom="8" paddingLeft="8" paddingRight="8" gap="5" width="100%">
                                                            <s:Label text="This button will filter jobs to show only THIS WEEK."/>
                                                            <s:Button label="OK" click="close()"/>
                                                  </s:VGroup>
                                        </s:TitleWindow>
                              </s:SkinnablePopUpContainer>
                    </fx:Component>

          </fx:Declarations>

          <s:BorderContainer x="10"  y="111" borderColor="#808080" cornerRadius="5" borderWeight="2" width="98%" height="369">
                    <s:Scroller width="100%" height="363" verticalScrollPolicy="on">
                              <s:Group width="100%" height="100%">


                                        <mx:DataGrid id="myGrid" width="900" height="350" dataProvider="{initDG}" >  <<<< THE ERROR IS HERE
                                                  <mx:columns>
                                                            <mx:DataGridColumn dataField="Lease" />
                                                            <mx:DataGridColumn dataField="Well" />
                                                            <mx:DataGridColumn dataField="Location" />
                                                            <mx:DataGridColumn dataField="Customer" />
                                                            <mx:DataGridColumn dataField="ScheduleDate" headerText="Schedule Date" />
                                                            <mx:DataGridColumn dataField="ServiceDate" headerText="Service Date" />
                                                  </mx:columns>
                                        </mx:DataGrid>

                              </s:Group>
                    </s:Scroller>
          </s:BorderContainer>

          <s:Label x="10" y="10" width="96" height="53" fontSize="24" text="Sort by:"
                               verticalAlign="middle"/>
          <s:Button id="btn_show_today" x="104" y="11" width="105" height="53" label="Today"
                                fontSize="13" fontWeight="bold" click="(new AlertMsgDay()).open(this, false);"/>
          <s:Button id="btn_show_week" x="216" y="11" width="105" height="53" label="Week"
                                fontSize="13" fontWeight="bold" click="(new AlertMsgWeek()).open(this, false);"/>
          <s:Button x="348" y="10" width="184" height="53" label="Edit this Job" fontSize="18" click="navigator.pushView(views.JobFormView);"/>
</s:View>
4

1 に答える 1

3

mx:DataGrid はモバイル向けに最適化されたコンポーネントではないため、MX SWC を明示的に追加しない限り、Flex Mobile プロジェクトには表示されません。MX SWC はフレームワーク ディレクトリに配置する必要があります。

覗く

[Flex Framework ディレクトリ]\frameworks\libs\mx\mx.swc

Windows でデフォルトの Flash Builder インストールを使用している場合。その場合、Flex Framework ディレクトリはおそらく次のようになります。

C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.6\sdks\4.6.0

プロジェクト設定の Flex Build Path ページで、ライブラリ パスに SWC を追加できます。

モバイル デバイスで MX DataGrid から非常に優れたパフォーマンスが得られるとは期待していませんが、MX DataGrid で成功した人の話を聞いたことがあります。

于 2012-09-25T02:01:46.373 に答える