ログイン | アカウントの作成
CONTACT | HOME | BBS | Wiki | Blog | Tools |


wikiトップページ

最近更新されたページ
Bit演算比較
型の処理速度比較
Arrayの複製速度比較
PHP Linuxで実行する
flash / Adobe Air
Flash
new Date().getTime速度テスト
派生クラスのアクセス速度
複数のクラスをまたいだパラメーターへのアクセス速度
getter setter 速度比較
型比較の速度比較
Static変数の速度比較
サーバー構築 / CVSサーバー
サーバー構築
サーバー構築 / WebMin
XNA
Array多次元配列の速度比較
オペレーター(加算、減算、積、乗算、余り)の比較
Numberを整数に変換処理比較
flash / jsfl

トップページ / flash / Adobe Air / PHP Linuxで実行する

PHP Linuxで実行する

PHP+LinuxでAir(Action Script 3.0)を実行する環境を構築する

インストール

Flex SDK をインストール
http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+3

Adobe AIR SDK をインストール
http://www.adobe.com/jp/products/air/tools/sdk/
FlexSDKに上書きする

↑設置場所はどこでも良い
環境変数PATHに追加したディレクトを追加

Air作成ファイル

hello.as

package
{
	import flash.desktop.NativeApplication;
	import flash.display.Sprite;
	import flash.events.InvokeEvent;
	import flash.filesystem.File;
	import flash.filesystem.FileMode;
	import flash.filesystem.FileStream;
	import mx.utils.ObjectUtil;

	public class hello extends Sprite
	{
		public function hello()
		{
			super();
			
			//外部から渡された引数を取得する
			NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE , this._onInvoleEvent);
		}

		private function _onInvoleEvent(evn:InvokeEvent):void
		{
			trace("current_dir = " + evn.currentDirectory.url);
			trace(ObjectUtil.toString(evn.arguments));
			
			var path:String = evn.currentDirectory.url + "/" + evn.arguments[0];
			
			//ファイルを出力する
			var file:File = new File(path);
			var stream:FileStream = new FileStream();
			stream.open(file, FileMode.WRITE);
			stream.writeUTFBytes("test");
			stream.close();

			//アプリケーションを終了
			NativeApplication.nativeApplication.exit(); 
		}

	}

}

hello-app.xml

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://ns.adobe.com/air/application/1.5">
        <id>HelloASCommandLineTool</id>
        <filename>hello</filename>
        <name>hello</name>
        <version>v1</version>
        <initialWindow>
                <content>hello.swf</content>
        </initialWindow>
</application>

コンパイルしてhello.swfを出力する

amxmlc -output hello.swf hello.as

PHPユーザーの権限の変更

apacheユーザーをsudo権限を持たせる

visudo
www-data ALL=(ALL) ALL

スクリプトファイルの作成

PHPからrootでシェルスクリプトを実行する

<?php

$command = "echo 'password' | sudo -u root -S /home/user/sh/adl1.sh";
shell_exec($command);

?>

シェルスクリプト1 Xウインドウを立ち上げているユーザーに変更してから次のシェルを実行する
/home/user/sh/adl1.sh

#!/bin/sh
su usr -c "/home/user/sh/adl2.sh"

シェルスクリプト2 flex SDKパスを設定&ディスプレイデバイスを設定
flex SDK の ADLコマンド(AIR Debug Launcher)を実行
/home/user/sh/adl2.sh

#!/bin/sh

export PATH=$PATH:/usr/local/flex3/bin:/usr/local/flex3/player/debug;
export DISPLAY=unix:0;

adl /home/user/sh/hello-app.xml -- arg1 arg2

完了

あとは http から PHP にアクセスしてAirが実行される事を確認してください。




CgInstitute のホーム   -    コンタクト   -    CgInstitute について   -    アカウントの作成