2011-07-05 6 views
2

Flex에 대한 경험이 많아서 처음으로 AIR 응용 프로그램을 작성하기 시작했으며 가능한 한 많은 Spark를 사용하고 싶습니다.s : WindowedApplication이 비어 있고 하위 구성 요소를 초기화/표시하지 않습니다.

<?xml version="1.0" encoding="utf-8"?> 
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" backgroundColor="red" 
         initialize="initializeHandler(event)"> 

    <s:Label text="Hello World"/> 

    <s:Button label="Test" initialize="onButtonInitialize()"/> 

    <fx:Script><![CDATA[ 
    import mx.events.FlexEvent; 

    private function onButtonInitialize():void 
    { 
     trace("Button"); 
    } 


    private function initializeHandler(event:FlexEvent):void 
    { 
     trace("Application"); 
    } 
    ]]></fx:Script> 
</s:WindowedApplication> 

불행하게도이 간단한 예제는 자식 구성 요소를 보여줍니다없고 초기화 핸들러도 아무도이 트리거되지 않습니다 :

그래서 나는 간단한 Hello World 응용 프로그램을가는 가지 시작했다. 그러나 루트 태그를 mx : WindowedApplication으로 변경하면 모든 것이 예상대로 작동합니다. 레이블과 버튼이 표시되고 콘솔에 두 개의 trace 문 출력이 표시됩니다.

무엇이 누락 되었습니까?

저는 Flex 4.5.0을 사용하고 있고 빌드에 flex-mojos를 사용하고 있습니다.

+2

제대로 컴파일 되었습니까? 프로젝트를 어떻게 설정 했습니까? 어때요? 어떤 버전의 Air가 기본 app config xml에 몇 가지 변경 사항이 있기 때문에 목표로 삼고 있습니다. –

+0

AIR 2.6을 목표로하고 있습니다. 그것은 컴파일되고 두 경우 모두 나는 빨간색 배경을 볼 수 있습니다. 이 단계에서는 내 사용자 정의 app.xml이 관련되지 않지만 AIR 응용 프로그램을 패키징하자마자 문제가 될 수 있습니다. 그러나 현재는 IDE, IntelliJ IDEA가 WindowedApplication 클래스를 실행하도록하고 있습니다. – Yaba

+1

IntelliJ IDEA for Flex/AIR dev (FlashBuilder 사용)에 익숙하지 않지만 디버그 버전을 빌드하고 있습니까? trace()가 디버그되지 않으면 작동하지 않는다고 생각합니다. BTW, FlashBuilder에서 코드를 시험해 보았지만 제대로 실행되기 때문에 이것이 Flex-mojos 구성의 문제 일 가능성이 큽니다. –

답변

2

필자는 설명자 파일이 맞다고 추측합니다. 플래시 빌더가 나를 위해 생성 한 기본값은 다음과 같습니다.

<?xml version="1.0" encoding="utf-8" standalone="no"?> 
<application xmlns="http://ns.adobe.com/air/application/2.6"> 

<!-- Adobe AIR Application Descriptor File Template. 

    Specifies parameters for identifying, installing, and launching AIR applications. 

    xmlns - The Adobe AIR namespace: http://ns.adobe.com/air/application/2.6 
      The last segment of the namespace specifies the version 
      of the AIR runtime required for this application to run. 

    minimumPatchLevel - The minimum patch level of the AIR runtime required to run 
      the application. Optional. 
--> 

    <!-- A universally unique application identifier. Must be unique across all AIR applications. 
    Using a reverse DNS-style name as the id is recommended. (Eg. com.example.ExampleApplication.) Required. --> 
    <id>Airtest</id> 

    <!-- Used as the filename for the application. Required. --> 
    <filename>Airtest</filename> 

    <!-- The name that is displayed in the AIR application installer. 
    May have multiple values for each language. See samples or xsd schema file. Optional. --> 
    <name>Airtest</name> 

    <!-- A string value of the format <0-999>.<0-999>.<0-999> that represents application version which can be used to check for application upgrade. 
    Values can also be 1-part or 2-part. It is not necessary to have a 3-part value. 
    An updated version of application must have a versionNumber value higher than the previous version. Required for namespace >= 2.5 . --> 
    <versionNumber>0.0.0</versionNumber> 

    <!-- A string value (such as "v1", "2.5", or "Alpha 1") that represents the version of the application, as it should be shown to users. Optional. --> 
    <!-- <versionLabel></versionLabel> --> 

    <!-- Description, displayed in the AIR application installer. 
    May have multiple values for each language. See samples or xsd schema file. Optional. --> 
    <!-- <description></description> --> 

    <!-- Copyright information. Optional --> 
    <!-- <copyright></copyright> --> 

    <!-- Publisher ID. Used if you're updating an application created prior to 1.5.3 --> 
    <!-- <publisherID></publisherID> --> 

    <!-- Settings for the application's initial window. Required. --> 
    <initialWindow> 
     <!-- The main SWF or HTML file of the application. Required. --> 
     <!-- Note: In Flash Builder, the SWF reference is set automatically. --> 
     <content>[This value will be overwritten by Flash Builder in the output app.xml]</content> 

     <!-- The title of the main window. Optional. --> 
     <!-- <title></title> --> 

     <!-- The type of system chrome to use (either "standard" or "none"). Optional. Default standard. --> 
     <!-- <systemChrome></systemChrome> --> 

     <!-- Whether the window is transparent. Only applicable when systemChrome is none. Optional. Default false. --> 
     <!-- <transparent></transparent> --> 

     <!-- Whether the window is initially visible. Optional. Default false. --> 
     <!-- <visible></visible> --> 

     <!-- Whether the user can minimize the window. Optional. Default true. --> 
     <!-- <minimizable></minimizable> --> 

     <!-- Whether the user can maximize the window. Optional. Default true. --> 
     <!-- <maximizable></maximizable> --> 

     <!-- Whether the user can resize the window. Optional. Default true. --> 
     <!-- <resizable></resizable> --> 

     <!-- The window's initial width in pixels. Optional. --> 
     <!-- <width></width> --> 

     <!-- The window's initial height in pixels. Optional. --> 
     <!-- <height></height> --> 

     <!-- The window's initial x position. Optional. --> 
     <!-- <x></x> --> 

     <!-- The window's initial y position. Optional. --> 
     <!-- <y></y> --> 

     <!-- The window's minimum size, specified as a width/height pair in pixels, such as "400 200". Optional. --> 
     <!-- <minSize></minSize> --> 

     <!-- The window's initial maximum size, specified as a width/height pair in pixels, such as "1600 1200". Optional. --> 
     <!-- <maxSize></maxSize> --> 

     <!-- The initial aspect ratio of the app when launched (either "portrait" or "landscape"). Optional. Mobile only. Default is the natural orientation of the device --> 

     <!-- <aspectRatio></aspectRatio> --> 

     <!-- Whether the app will begin auto-orienting on launch. Optional. Mobile only. Default false --> 

     <!-- <autoOrients></autoOrients> --> 

     <!-- Whether the app launches in full screen. Optional. Mobile only. Default false --> 

     <!-- <fullScreen></fullScreen> --> 

     <!-- The render mode for the app (either auto, cpu, or gpu). Optional. Mobile only. Default auto --> 

     <!-- <renderMode></renderMode> --> 

     <!-- Whether or not to pan when a soft keyboard is raised or lowered (either "pan" or "none"). Optional. Defaults "pan." --> 
     <!-- <softKeyboardBehavior></softKeyboardBehavior> --> 
    <autoOrients>false</autoOrients> 
     <fullScreen>false</fullScreen> 
     <visible>false</visible> 
    </initialWindow> 

    <!-- We recommend omitting the supportedProfiles element, --> 
    <!-- which in turn permits your application to be deployed to all --> 
    <!-- devices supported by AIR. If you wish to restrict deployment --> 
    <!-- (i.e., to only mobile devices) then add this element and list --> 
    <!-- only the profiles which your application does support. --> 
    <!-- <supportedProfiles>desktop extendedDesktop mobileDevice extendedMobileDevice</supportedProfiles> --> 

    <!-- The subpath of the standard default installation location to use. Optional. --> 
    <!-- <installFolder></installFolder> --> 

    <!-- The subpath of the Programs menu to use. (Ignored on operating systems without a Programs menu.) Optional. --> 
    <!-- <programMenuFolder></programMenuFolder> --> 

    <!-- The icon the system uses for the application. For at least one resolution, 
    specify the path to a PNG file included in the AIR package. Optional. --> 
    <!-- <icon> 
     <image16x16></image16x16> 
     <image32x32></image32x32> 
     <image36x36></image36x36> 
     <image48x48></image48x48> 
     <image72x72></image72x72> 
     <image114x114></image114x114> 
     <image128x128></image128x128> 
    </icon> --> 

    <!-- Whether the application handles the update when a user double-clicks an update version 
    of the AIR file (true), or the default AIR application installer handles the update (false). 
    Optional. Default false. --> 
    <!-- <customUpdateUI></customUpdateUI> --> 

    <!-- Whether the application can be launched when the user clicks a link in a web browser. 
    Optional. Default false. --> 
    <!-- <allowBrowserInvocation></allowBrowserInvocation> --> 

    <!-- Listing of file types for which the application can register. Optional. --> 
    <!-- <fileTypes> --> 

     <!-- Defines one file type. Optional. --> 
     <!-- <fileType> --> 

      <!-- The name that the system displays for the registered file type. Required. --> 
      <!-- <name></name> --> 

      <!-- The extension to register. Required. --> 
      <!-- <extension></extension> --> 

      <!-- The description of the file type. Optional. --> 
      <!-- <description></description> --> 

      <!-- The MIME content type. --> 
      <!-- <contentType></contentType> --> 

      <!-- The icon to display for the file type. Optional. --> 
      <!-- <icon> 
       <image16x16></image16x16> 
       <image32x32></image32x32> 
       <image48x48></image48x48> 
       <image128x128></image128x128> 
      </icon> --> 

     <!-- </fileType> --> 
    <!-- </fileTypes> --> 

    <!-- iOS specific capabilities --> 
    <!-- <iPhone> --> 
     <!-- A list of plist key/value pairs to be added to the application Info.plist --> 
     <!-- <InfoAdditions> 
      <![CDATA[ 
       <key>UIDeviceFamily</key> 
       <array> 
        <string>1</string> 
        <string>2</string> 
       </array> 
       <key>UIStatusBarStyle</key> 
       <string>UIStatusBarStyleBlackOpaque</string> 
       <key>UIRequiresPersistentWiFi</key> 
       <string>YES</string> 
      ]]> 
     </InfoAdditions> --> 
     <!-- <requestedDisplayResolution></requestedDisplayResolution> --> 
    <!-- </iPhone> --> 

    <!-- Specify Android specific tags that get passed to AndroidManifest.xml file. --> 
    <!--<android> 
     <manifestAdditions> 
     <![CDATA[ 
      <manifest android:installLocation="auto"> 
       <uses-permission android:name="android.permission.INTERNET"/> 
       <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
       <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
       <uses-configuration android:reqFiveWayNav="true"/> 
       <supports-screens android:normalScreens="true"/> 
       <uses-feature android:required="true" android:name="android.hardware.touchscreen.multitouch"/> 
       <application android:enabled="true"> 
        <activity android:excludeFromRecents="false"> 
         <intent-filter> 
          <action android:name="android.intent.action.MAIN"/> 
          <category android:name="android.intent.category.LAUNCHER"/> 
         </intent-filter> 
        </activity> 
       </application> 
      </manifest> 
     ]]> 
     </manifestAdditions> 
    </android> --> 
    <!-- End of the schema for adding the android specific tags in AndroidManifest.xml file --> 

</application> 
+0

당신이 옳았어요! 내 실행 구성이 잘못되었습니다. 분명히 IDEA는 mx : WindowedApplication을 사용할 때 디스크립터를 요구하지 않지만 s : WindowsApplication에는 하나의 디스크립터가 필요합니다. 그래서 사용자 지정 AIR 실행 구성을 만들고 여기에 적절한 설명자를 선택했습니다. – Yaba

+1

@J_A_X : @Yaba와 동일한 문제가 있습니다. FB4.5를 사용하고 있습니다. 게시자와 동일한 기본 설명자 파일을 사용하면 ' true로 변경하면 아무 것도 표시되지 않습니다.'나는 창문을 보게되고 배경은 보게된다. 만약 내가 그것을 mx WindowedApplication으로 만들면 모든 좋은 ... – goliatone

+0

@goliatone, 나는 당신이 자신의 질문을 시작하고 설명자 파일과 코드를 게시해야한다고 생각한다. –

관련 문제