MXMLファイルとASファイル

基本的なことだと思いますが、ちゃんとわかってなかったので、書きました。

サンプル1) MXMLファイルからASファイルを読み込む

Sample
      │
      ├ as/
      │   ├ Sample.as
      │
      ├ Sample.mxml
      ├ Sample-app.xml

Sample.as

public function Sample():void
{
   trace("Hello, World");
}

ASファイルには単純に、以下のようにメソッドをづらづら書ける

import ***;

private var ***;

public function Sample1():void
{
}

public function Sample2():void
{
}

Sample.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
   <mx:Script>
       <![CDATA[
           include "./as/Sample.as";
        ]]>
   </mx:Script>
   <mx:Button click="Sample()" />
</mx:Application>

Sample-app.xml

<?xml version="1.0" encoding="UTF-8"?>
<application 
   xmlns="http://ns.adobe.com/air/application/1.0.M5"
   appId="minaco.air.Sample"
   version="1.0">
   <name>Sample</name>
   <description>Sample</description>
   <title>Sampleアプリケーション</title>
   <copyright>2007 Minaco</copyright>
   <initialWindow>
       <title>Sampleアプリケーション</title>
       <content>Sample.swf</content>
       <systemChrome>standard</systemChrome>
       <transparent>false</transparent>
       <visible>true</visible>
   </initialWindow>
</application>

実行

ボタンをクリックすると、Hello, Worldが出力される。

C:\air > amxmlc Sample7.mxml
Loading configuration file C:\air\frameworks\air-config.xml
This beta will expire on Thu Jan 31 00:00:00 JST 2008.
C:\air\Sample.swf (151176 bytes)
C:\air > adl Sample-app.xml
Hello, World


サンプル2) MXMLファイルからASファイルに記述されたクラスを利用する

mxmlファイルとasファイルを同じ階層に置けば、mxmlファイル内にasファイルを読み込む記述を特にしなくても、Sampleクラスが使える。

Sample
      │
      ├ Sample.as
      ├ Sample.mxml
      ├ Sample-app.xml

Sample.as

package
{
   public class Sample
   {
       //コンストラクタ
       public function Sample()
       {
           trace("Hello, World");
       }
   }
}

Sample.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
   <mx:Script>
       <![CDATA[
           public function onClickBtn():void 
           {
               new Sample();
           }
        ]]>
   </mx:Script>
   <mx:Button click="onClickBtn()" />
</mx:Application>

Sample-app.xml

<?xml version="1.0" encoding="UTF-8"?>
<application 
   xmlns="http://ns.adobe.com/air/application/1.0.M5"
   appId="minaco.air.Sample"
   version="1.0">
   <name>Sample</name>
   <description>Sample</description>
   <title>Sampleアプリケーション</title>
   <copyright>2007 Minaco</copyright>
   <initialWindow>
       <title>Sampleアプリケーション</title>
       <content>Sample.swf</content>
       <systemChrome>standard</systemChrome>
       <transparent>false</transparent>
       <visible>true</visible>
   </initialWindow>
</application>

実行

ボタンをクリックすると、Hello, Worldが出力される。

C:\air > amxmlc Sample7.mxml
Loading configuration file C:\air\frameworks\air-config.xml
This beta will expire on Thu Jan 31 00:00:00 JST 2008.
C:\air\Sample.swf (151176 bytes)
C:\air > adl Sample-app.xml
Hello, World


サンプル3) MXMLファイルからASファイルに記述されたクラスを利用する(パッケージの使い方)

Sample
      │
      ├ test/
      │   ├ minaco/
      │      ├ Sample.as
      │
      ├ Sample.mxml
      ├ Sample-app.xml

Sample.as

package test.minaco
{
   public class Sample
   {
       //コンストラクタ
       public function Sample()
       {
           trace("Hello, World");
       }
   }
}

Sample.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
   <mx:Script>
       <![CDATA[
           import test.minaco.Sample;
           
           public function onClickBtn():void 
           {
               new Sample();
           }
        ]]>
   </mx:Script>
   <mx:Button click="onClickBtn()" />
</mx:Application>

Sample-app.xml

<?xml version="1.0" encoding="UTF-8"?>
<application 
   xmlns="http://ns.adobe.com/air/application/1.0.M5"
   appId="minaco.air.Sample"
   version="1.0">
   <name>Sample</name>
   <description>Sample</description>
   <title>Sampleアプリケーション</title>
   <copyright>2007 Minaco</copyright>
   <initialWindow>
       <title>Sampleアプリケーション</title>
       <content>Sample.swf</content>
       <systemChrome>standard</systemChrome>
       <transparent>false</transparent>
       <visible>true</visible>
   </initialWindow>
</application>

実行

ボタンをクリックすると、Hello, Worldが出力される。

C:\air > amxmlc Sample7.mxml
Loading configuration file C:\air\frameworks\air-config.xml
This beta will expire on Thu Jan 31 00:00:00 JST 2008.
C:\air\Sample.swf (151176 bytes)
C:\air > adl Sample-app.xml
Hello, World

よく出してしまったエラー

Error: シンタックスエラー : identifier が ** の前に必要です。
Error: クラスをネストすることはできません。


Comment



Counter: 5615, today: 1, yesterday: 2

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-09-24 (火) 14:55:48 (1788d)