2008年05月01日
AIRにはwebkitというブラウザエンジンが組み込まれています。
なのでブラウザが出来る!というわけで作ってみました。
開発環境はFlashCS3で!Flexは今のところmxmlがちょいと難しいです。
web上でサンプルプログラムが転がっていますが、ベータ版の時のもののようでそのまま動かそうと思ってもできないものがあります。
AIR開発時に躓くのがこういうところのようでWeb上のドキュメントが古いために開発に手間取ってしまう場合が現状多々あり…。例えばHTMLControlというクラスがHTMLLoaderに変更になっていたりとか。
リファレンスを見ればいいと思うかと思いますが、FlashCS3のリファレンスはAIR関連のクラスがリファレンスが未掲載だったりorz、Flexを見てみたら英語であったり。
そんな感じの中で重宝しているのが
http://livedocs.adobe.com/flex/3_jp/langref/
です。
ところでなんかリファンレンス使いづらくないですかね?
とりあえずNEXT、BACKボタンとアドレス表示、URL変更ジャンプくらいの機能をつけてみる。
独自の機能を盛り込んでいこうと企み中。
新しいUIの提案が出来るようなものを作りたいなぁ。
一応ソース公開。
ソース
-----------------------------------------------------
import flash.html.HTMLLoader;
import flash.net.URLRequest;
//stage設定
stage.align = "TL";
stage.scaleMode = StageScaleMode.NO_SCALE;
//読み込む外部HTMLデータの設定
var urlReq:URLRequest = new URLRequest("http://www.yahoo.co.jp/");
//HTMLデータの読み込みと表示設定
var html:HTMLLoader = new HTMLLoader();
html.load(urlReq);
html.y = 34;
HTMLlocation.text = html.location;
html.width = stage.stageWidth;
html.height = stage.stageHeight-100;
html.addEventListener(Event.COMPLETE,COMPLETE);
html.addEventListener(Event.LOCATION_CHANGE ,CHANGE);
stage.addChild(html);
//初期設定
stage.addEventListener(Event.RESIZE,Resize);
HTMLlocation.addEventListener(FocusEvent.FOCUS_IN,locationCLOSE);
bar.addEventListener(MouseEvent.MOUSE_DOWN,barCLICK);
back_button.addEventListener(MouseEvent.CLICK,BACK);
next_button.addEventListener(MouseEvent.CLICK,FORWARD);
bar.width = stage.stageWidth;
bar_foot.x = stage.stageWidth-bar_foot.width;
//リサイズ処理
function Resize(event:Event){
html.width = html.contentWidth + stage.stageWidth-html.contentWidth;
html.height = html.contentHeight + stage.stageHeight-html.contentHeight-40;
bar.width = stage.stageWidth;
bar_foot.x = stage.stageWidth-bar_foot.width;
}
//アドレス表示処理
function CHANGE(event:Event){
HTMLlocation.text = html.location;
}
//読み込み完了時処理
function COMPLETE(event:Event){
html.width = html.contentWidth + stage.stageWidth-html.contentWidth;
html.height = html.contentHeight + stage.stageHeight-html.contentHeight-40;
}
//戻るキー
function BACK(event:Event){
html.historyBack();
}
//進むキー
function FORWARD(event:Event){
html.historyForward();
}
//ENTERキー用イベントリススナー登録
function locationCLOSE(event:Event){
HTMLlocation.addEventListener(KeyboardEvent.KEY_DOWN,locationKEYDOWN);
}
//ENTERキーを押してlocation移動
function locationKEYDOWN(event:KeyboardEvent){
if(event.keyCode == 13){
var newUrl:URLRequest = new URLRequest(HTMLlocation.text);
html.load(newUrl);
}
}
//ドラッグでウィンドウ移動
function barCLICK(event:MouseEvent){
stage.nativeWindow.startMove();
}
2008年05月12日
HTMLLoader上でMOUSE_DOWNが効かないぃぃぃ~~~~。
正確にいうと読み込んだHTML上のリンクやボタンをクリックするとMOUSE_DOWNのイベントが起きる。
これは仕様かバグか。
別途回避策を考え中…。
2008年05月28日
遅まきながらpapervision3D始めました。
gotoandlearn.comのビデオを見ながらコーディング。
http://www.gotoandlearn.com/player.php?id=40
フムフム。やってみると割と簡単にできるものである。
これとか作ってみたらできそうじゃん!
http://pen-web.jp/01award/index.html
イヤイヤ恐れ多いアワアワ。
ちょろっと習作を作ってみる。
http://www.techno-tokyo.com/neta/scene.html
いやいや楽しい。まだ手を出してない人は是非手を出すべき。
まだまだweb上のドキュメントが少ないし、敷居の高い感じはするけどいじると楽しいよPepervison3D
ちょっと3Dの知識がある方が使いやすいと思うので3Dのオーサリングソフトを触ってみるのがいいかも。
Flashを使い始めて何年もたつけど、3Dをグリグリ動かせたのははじめてなのでちょいと興奮しました。