9 posts tagged “java”
FlexBuilder3StandAloneにJavaコンパイラ機能をつける方法
- FlexBuilder3を開く
- メニューからヘルプ→ソフトウェア更新→検索およびインストールを選択
- インストールする新規フィーチャーを検索を選択し、次へ
- 検索に含めるサイトでThe Eclipse Project Updatesにチェックをつけて終了
- 更新サイトのミラーリングはどこでもいい(と思う、今回はaizuを選択)
- インストールするフィーチャーの選択でEclipse3.x.xを選択し、ツリーを展開する
- 今回検証につかったFlexBuilder3のバージョンは3.0(ビルド 3.0.194161)
- Eclipse Java Development Tool xxx...と書かれているプラグインを見つけて、チェックでOK
- あとは手順にしたがってダウンロード&インストール
- 再起動すれば、はい出来上がり
- Javaのプロジェクトが作れるか確認しましょー
- FlexBuilder3でもJavaプロジェクトをつくることができる(もとがEclipseだからそりゃそうだ)
- Java開発に必要なPluginは,Eclipse Java Development Tool xxx...だけ
- 更新サイトは状況によってファイルがあったりなかったりするかもしれないので、エラーがでるようならまず更新サイトを疑う
- プロジェクトのバージョン管理とかの関係で、FlexBuilderのPluginは塞がってるけど、Javaもやらないとだめって人は覚えとくといいかも
巷で流行っている?らしいので僕もやってみた
どうせならワンライナーショートコーディング
■問題
1から100までの数をプリントするプログラムを書け。
ただし3の倍数のときは数の代わりに「Fizz」と,
5の倍数のときは「Buzz」とプリントし,
3と5両方の倍数の場合には「FizzBuzz」とプリントすること。
AS3
package {import flash.display.Sprite;public class c extends Sprite {public function c(){for(var i=0;i++<100;)trace((i%3?"":"Fizz")+(i%5?"":"Buzz")||i)}}}
Java
class c {public static void main(String[]a){String s="";for(int i=0;i++<100;System.out.println(i%5!=0?s==""?i:s:s+"Buzz")){s=i%3!=0?"":"Fizz";}}}
もっと短くできたかなー?
yui-frameworks alpha 5がreleaseされました。
yuiの機能
yuiは上記の機能を利用し、Flex開発におけるプログラマとデザイナーの分業を実現することを目的としています
yuiでは、実際にView側に手を加えることなく、ViewのLogic制御を後から注入することが出来ます
まだまだ機能として完全ではないので、大規模開発には使えませんがどんなものか雰囲気だけでも
味わっていただけたらと思います
exampleもここからダウンロードできます
なにかございましたら、ぜひご意見、感想などフィードバックをいただければありがたいです
Google Guice使ってみました。
Guiceとは、「アノテーションとジェネリクスを使い、パフォーマンスを重視し、DIに特化したDI」 だそうです。
DIに特化したDIとは、Spring 、Seaserとは違って、独立したDIではなく、他のDIコンテナの機能を利用できるということです。
口でいっても始まらないので、文字列を出力するという簡単なサンプルを実際に作ってみました。
こっからjarをダウンロード
http://code.google.com/p/google-guice/
解凍すると以下のjarがありますので、これらをclasspathにとおします。
aopalliance.jar
guice-1.0.jar
guice-servlet-1.0.jar
guice-spring-1.0.jar
guice-struts2-plugin-1.0.jar
まずインジェクションするインターフェースを作成します。
public interface Command {
Command実装クラスです。
public class CommandImpl implements Command {
上記インターフェースに実装クラスをInjectionさせるModuleクラスを作成します。
これは他のDIでいう設定ファイルという位置づけです。
public class CommandModule implements Module {
}
実行クラスを作成します。
public class Main {
Moduleクラスのサブクラスとして設定したCommandModuleによってCommandにCommandImplがインジェクションされ
それを実行しています。
結果は"HelloWorld"となるはずです。
ほんのり使ってみた感想として、jarにClassPathを通すだけで使用できる身軽さ、設定ファイルの各種タグを覚える必要がないこと、入門のしやすさ、など非常に使いやすいと思いました。
今回はさわりだけ紹介しましたが、もっと詳しく知りたい方は以下を参照ください。
http://d.hatena.ne.jp/arumani/
Source Codeの検索エンジン集
http://www.atmarkit.co.jp/fjava/column/andoh/andoh33.html
Flex2 FileReferenceのuploadメソッドの使い方についてメモ。
サーバにファイルをアップロードするには、まずbrowse()メソッドを呼び出して、ユーザーにファイルの選択を求めます。
その後、Event.selectをハンドリングして、その中でupload()メソッドを呼び出します。
FileReference.uploadメソッドが呼び出されると、選択されたファイルがサーバへ転送されます。
サーバ側では下記のように実装すれば選択されたローカルのファイルをサーバで保持することができます。
ライブラリとして、commons-FileUpload & commons IOを使用しています。
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
log("** upload start **");
//ServletFileUpload
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
// アップロードする際の基準値を設定
factory.setSizeThreshold(10240);
factory.setRepository(new File(getRepository(true)));
upload.setSizeMax(-1);
//ファイル名の文字化け対策(flex2のfileReferenceを使用する場合はUTF-8を指定)
upload.setHeaderEncoding("UTF-8");
try {
List list = upload.parseRequest(req);
Iterator iter = list.iterator();
while (iter.hasNext()) {
FileItem fitem = (FileItem)iter.next();
if (!fitem.isFormField()) {
String fileName = fitem.getName();
if (fileName != null && !"".equals(fileName)) {
log(" upload file write... file size = " + fitem.getSize());
//ファイル書き出し
fitem.write(new File(getRepository(false) + "/" + fileName));
}
}
}
}catch (Exception e) {
throw new ServletException(e.getMessage());
}
log("** upload end **");
}
private String getRepository(boolean isTempDir) {
return getServletContext().getRealPath(isTempDir? "/WEB-INF/temp":"/data");
}
後は煮るなり焼くなりご自由に。
FDS+TomcatによるRemotingを行う場合、FDSインストールフォルダにあるflex.warをTomcatにデプロイすることで
テンプレートとなるXMLファイルを手に入れることが出来る。
解凍され出来たフォルダの中にあるWEB-INF/flex/remoting-config.xmlがそのRemoteObjectの登録ファイルとなる。
以下、JavaObjectをRemoteとして登録する場合の設定ファイル
<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service"
class="flex.messaging.services.RemotingService"
messageTypes="flex.messaging.messages.RemotingMessage">
<adapters>
<adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/>
</adapters>
<default-channels>
<channel ref="my-amf"/>
</default-channels>
<!-- Remoteとして登録するための記述 -->
<destination id="remoteTest">
<properties>
<source>jp.nav.remote.RemoteTest</source>
<scope>request</scope>
</properties>
<adapter ref="java-object" />
</destination>
</service>
登録するRemoteJavaClassが複数ある場合は、destinationタグを記述し、ソースパスからのクラス指定。
最近AS3ばかりでJava触ってないので、参考メモ
Comparing the syntax of Java 5 and ActionScript 3
Java5 AS3 構文比較
flashnodさんが日本語訳してます