ブラウザでダウンロード http によるデータ送信Flex を使うとたいてい見栄えが同じなので、 HTML上の css と同じ感覚で最低限の変更のサンプルです コード上は、JavaScript 側から送信できるインターフェイスを追加していますので、 F12 で firebug lite を表示させて、最下行のコマンドラインから :dir(id_sample) で、関数の存在を確認できます。 実行は以下のようにして行います。 id_sample.sendSyain("文字列") --------------------------------------------------------------------------------- Firefox の Firebug では、document.getElementById("id_sample").sendSyain("文字列") として下さい。 001. <?xml version= "1.0" encoding= "utf-8" ?> 002. <mx:Application 003. xmlns:mx= "http://www.adobe.com/2006/mxml" 004. initialize= "initData();" 005. > 006. 007. <mx:Style> 008. 009. global { 010. fontSize: 14; 011. color: #FFFFFF; 012. } 013. 014. /* 015. ● backgroundGradientColors 016. 背景グラデーションの塗りの着色で使用するカラーを指定します。 017. これは、RGB カラーを指定する 2 つの uint 値から成る配列に 018. 設定する必要があります。 019. エレメント 0 および 1 は、カラーグラデーション 020. の開始値と終了値を指定します。 021. 単色の背景の場合は、エレメント 0 と 1 に同じカラー値を設定します。 022. 値 undefined は、backgroundColor プロパティに基づいて 023. 背景グラデーションが生成されることを示します。 024. デフォルト値undefined. 025. */ 026. Application { 027. backgroundGradientColors: 0,9044009 028. } 029. 030. FormHeading { 031. fontSize: 18; 032. } 033. 034. TextInput { 035. color: #000000; 036. } 037. 038. .labelAlign { 039. textAlign: left; 040. } 041. 042. /* 043. ● fillColors 044. コントロールの背景の着色に使用されるカラーです。 045. フラットな外観のコントロールを作成するには、 046. どちらの値にも同じカラーを渡します。 047. デフォルト値[ 0xFFFFFF, 0xCCCCCC ] 048. ● fillAlphas 049. [1, 1] を使うと、コントロールの背景が不透明 050. になります。 051. デフォルト値[ 0.6, 0.4 ] 052. */ 053. .sendButton { 054. fillColors: #000000,#000000; 055. fillAlphas: 1,1; 056. color: #FFFFFF; 057. textRollOverColor: #FFFFFF; 058. } 059. 060. </mx:Style> 061. <mx:Script> 062. <![CDATA[ 063. 064. import mx.controls.*; 065. import mx.events.*; 066. import mx.rpc.events.*; 067. import mx.formatters.*; 068. import flash.external.*; 069. 070. // ********************************************************* 071. // アプリケーションの初期化 072. // ********************************************************* 073. public function initData(): void { 074. 075. firebug( "処理開始" ); 076. fld1.setFocus(); 077. 078. // JavaScript に公開するメソッドの登録 079. ExternalInterface.addCallback( "sendSyain" , sendSyain); 080. // いかなるドメインからも OK 081. Security.allowDomain( "*" ); 082. } 083. 084. // ********************************************************* 085. // JavaScript 用のインターフェイス 086. // ********************************************************* 087. public function sendSyain(log:String= "送信" ): void { 088. 089. sendData(); 090. firebug(log); 091. 092. } 093. 094. // ********************************************************* 095. // ログ表示 096. // ********************************************************* 097. public function firebug(data:Object): void { 098. 099. var fmt:DateFormatter = new DateFormatter(); 100. 101. fmt.formatString = "YYYY/MM/DD HH:NN:SS" ; 102. var logdt:String = fmt.format( new Date ); 103. 104. ExternalInterface.call( 105. "console.log" , logdt, 106. data+ "" 107. ); 108. 109. } 110. 111. // ***************************************************** 112. // HTTPServiceを使用してHTTPリクエスト(GET)を行う 113. // ***************************************************** 114. private function sendData(): void { 115. // ● リクエストするURLをセット 116. // ★ http:// で記述すると、ベースが ローカルでも動作します 117. srv.url = "http://localhost/php/ph/flex3_http_sample2/response.php" ; 118. 119. srv.request.fld1 = fld1.text; 120. srv.request.fld2 = fld2.text; 121. srv.request.fld3 = fld3.text; 122. 123. // レスポンス結果のデータフォーマット 124. srv.resultFormat = "text" ; 125. srv.method = "GET" ; 126. srv.send(); 127. 128. } 129. 130. 131. // ***************************************************** 132. // HTTPServiceが成功 133. // ***************************************************** 134. private function resultHandler(e:ResultEvent): void { 135. 136. Alert.show(e.result.toString()); 137. 138. } 139. 140. // ***************************************************** 141. // HTTPServiceでエラーが発生した 142. // ***************************************************** 143. private function faultHandler(e:FaultEvent): void { 144. Alert.show(e.fault.message); 145. } 146. 147. ]]> 148. </mx:Script> 149. 150. <mx:HTTPService 151. id= "srv" 152. showBusyCursor= "true" 153. result= "resultHandler(event)" 154. fault= "faultHandler(event)" 155. /> 156. 157. <mx:Form width= "90%" height= "90%" > 158. <mx:FormHeading height= "40" label= "社員データ登録" /> 159. 160. <mx:FormItem 161. label= "社員コード" 162. labelStyleName= "labelAlign" 163. paddingBottom= "30" 164. > 165. <mx:TextInput 166. id= "fld1" 167. maxChars= "4" 168. width= "50" 169. /> 170. 171. </mx:FormItem> 172. <mx:FormItem 173. label= "氏名" 174. labelStyleName= "labelAlign" 175. paddingBottom= "30" 176. > 177. <mx:TextInput 178. id= "fld2" 179. width= "300" 180. /> 181. 182. </mx:FormItem> 183. <mx:FormItem 184. label= "フリガナ" 185. labelStyleName= "labelAlign" 186. paddingBottom= "30" 187. > 188. <mx:TextInput 189. id= "fld3" 190. width= "300" 191. /> 192. 193. </mx:FormItem> 194. 195. <mx:FormItem 196. label= "" 197. labelStyleName= "labelAlign" 198. paddingBottom= "30" 199. > 200. <mx:Button 201. id= "btn" 202. label= "送信" 203. click= "sendData()" 204. styleName= "sendButton" 205. /> 206. </mx:FormItem> 207. 208. 209. </mx:Form> 210. 211. </mx:Application> PHP 側のコードfile_put_contents で、Windows 用に1行1データでフォーマットされたテキストを 入力された社員コード.txt というファイルに書き込みます 01. <? 02. header( "Content-Type: text/html; Charset=utf-8" ); 03. header( "Expires: Wed, 31 May 2000 14:59:58 GMT" ); 04. 05. mb_language( "ja" ); 06. mb_internal_encoding( "UTF-8" ); 07. 08. // Windows 用として CRLF 09. $text .= $_GET [ 'fld1' ]. "\r\n" ; 10. $text .= $_GET [ 'fld2' ]. "\r\n" ; 11. $text .= $_GET [ 'fld3' ]. "\r\n" ; 12. 13. $utf8 = $text ; 14. 15. // 書き込みは Windows 用として SHIFT_JIS 16. $text = mb_convert_encoding( $text , "SHIFT_JIS" , "UTF-8" ); 17. 18. file_put_contents ( $_GET [ 'fld1' ]. ".txt" , $text ); 19. 20. // Flex は utf-8 なので、変換前を返す 21. print_r( $utf8 ); 22. ?> |