ラベル Flash の投稿を表示しています。 すべての投稿を表示
ラベル Flash の投稿を表示しています。 すべての投稿を表示

2007/11/07

[Flash]Laszloよ、納品後の暇な時間を返せ。

昨日納品が一端終わって今日は暇だ。

といっても納品先から何をいってくるかわからないので待機状態なんだけどね。

ついでに言うと、明日からまた忙しくなる。

そんなわけでプロジェクトの仕様書なぞを読みつつ。

今年の初めにちょっと触ったFAME(Flashout+ASDT+MTASC+Eclipse)
でも再度触ってみようかと思いぐーぐるで検索する。

最近またFlashに興味が出てきたのだ。

FAMEは中々に面白い考え方だったので、
FAMEに関するBlogの新規エントリーが増え
FAMEコミュニティが活性化しているかと思いきや、

あらら、全然エントリーがない、一番最近のエントリーでも2005年だよ

どうやらFAMEははやらなかったようだ。
(Swifmillとの組み合わせでFAMESとかいうものもあったのになぁ)

じゃあ、EclipseでFlashを作成するような環境って今他のものはあるのだろうか?

一番今はやっているものは何かないかなぁ?



またまたぐーぐるにて「Flash eclipse」で検索をかける。

こんな記事を見つけた。
Ajax,Flash,Java---オープンソースで実現するリッチクライアント 第4回

さらに、そこからこんなものを見つけた。

Open Laszlo

(オープン・ラズロと読むらしい)

どうやらCPLライセンスのオープンソフトみたいだ。
CPLライセンスとは・・・麻原○晃にドッペルゲンガーである。。。
って書いたら信者から殺されそうなので、

とりあえず、未来永劫無料、商用利用にあたっても
ラズロのソースコードの公開だけでいいという素晴らしいライセンスてことでOK。

さて、オープンソースであることは非常に気にいたのだけど
(ついでに名前の響きも面白い)

調べてみるとこんなものがった。


EclipseプラグインでOpenLaszlo IDEを構築する

まさに探していたものじゃーないか!

早速Open Laszoloをインストールする。
これは驚くほどさっくりといけた。
Open Laszlo DL場所

次にIDE4ECLIPSEをインストールしようと

Open Laszlo用のEclipseプラグインを公開している
alphaWorksのサイトにいってみる→ここ

ここにあると書いてたけど・・・?あれ?無い!おいてない!

ってことでネットの海の中血眼になって探すと

LaszloJapanのフォーラムに情報があった
これ

IDE4LASZLOのDL場所

ふぅ、これでDLできる

やっとこさIde4laszloをインストールできると思ったら。

org.eclipse.emf.ecore.resource が無いとかいって怒られた。

emf.ecoreをダウンロードしてインストール

さて次こそインストール!

必須:フィーチャー"org.eclipse.emf.ocl(1.0.0)"、または互換。

とまた怒られた。

要するに、emf.olcのバージョン1.0.0が足りてねーっていうことだ

エラーワードでググってみると、あるブログに以下プラグインを全部インストールすると解決したとあったのでぶちこむ。



さーインストールだ。
おう・・・・

現在の構成にはエラーがあり、この操作は予測できない結果を引き起こす可能性があります。
OCL 2.0 Binding for UML (1.1.1.v200707131415-1007w311818242526) 必須: プラグイン "org.eclipse.core.runtime (3.3.0)"、または互換。
Object Constraint Language (OCL) 2.0 (1.1.1.v200707131415-3209oA55P5N7F8JDH) 必須: プラグイン "org.eclipse.emf.ecore (2.3.0)"、または互換。
EMF Model Query OCL Integration (1.1.0.v200706071712-10-7w311817182823) 必須: プラグイン "org.eclipse.emf.ocl (1.1.0)"、または互換。

えーっと何々?org.eclipse.core.runtime(3.3.0)
Eclipseを3.3にしろと言ってるのか?

あ、いや違う、インストールしたOCLがどーもバージョンが新しすぎたらしい、1.1.1をインストールしてたが、
Eclipse3.2だと1.0.0じゃないとダメみたいだなぁ、互換性ないのかよ。

1.0へのリンクが上記URLにあったのでそれをインストール。
前バージョンをアンインストール。
Eclipse再起動!

そろそろ動け!

おk!動いた!

てなことやってたらえらい時間食ったわけで・・・

OpenLaszro面白うそうではあるが、IDE4ECLIPSEの場所が変わったことをネタにしているブログがほとんどないことから考えると、もしかしたらあまりはやってないのかもなぁ。
ま、ボチボチ触ってみます。

以下にインストールの時に助けてもらったサイト

参考サイト
Openlaszlo.jp
OpenLaszlo速攻インストール(Windows版/初心者向け)

Web 技術サイト Okapi Project
Eclipse + IDE for Laszlo のインストール

2007/03/15

[Flash]FAMEでFlashのバージョン取得

会社で作ったFlashがFlash7で動かないとのこと、
そりゃそうだ、Flash8で作ってるんだから。

会社曰く、現在インスコされているFlashPlayerの初期は7だからそれに合わせろ。

ふーん・・・7がデフォでインスコされているとは知らなかった。

で、パブリッシュの書き出しで7にすれば対応できますよっとメールを送ったところ。

対応できたが、一部ドロップシャドウが消失

ナンデスト?
どうやらドロップシャドウではなくシャドウ部位に使用していたグラデがFlash7だと存在しないようだ。
(それぐらい事前に調べとけってか?ハイ、その通りですスイマセン)

で、出来上がったものを見たが、
やはりグラデが全部消えてるとちょっと嫌な感じだ。

う~ん・・・そういや昔javaScriptにhttpヘッダの中読んで
ブラウザのバージョンをGETする方法とかを見た気がする。

ActionScriptで、FlashPlayerのバージョンをGETできないものだろうか? さらにそのバージョン毎に違うswfファイルを見せること出来ないか?
つまりFlashPlayer8以上を使用している人には8以上のバブリッシュ設定のものを
7を使用している人には7用のswfをそれぞれ提供できないか?
(今回最低バージョンは7としている、理由はActionScript2.0が提供されるのは7以降なので)

調べた結果
System.capabilities.version;

を使用すれば望みのものを得ることが出来るようだ。

以下実際のコードを書いてみる。
(FAME環境で作ったため、Macromediaと違うところがあります)

versionManager.as

class versionManager {
function versionManager (path){
trace(Flashout.DEBUG + "trace()");

// _rootのDepth=1にMovieClipのインスタンスseedを作成
path.createEmptyMovieClip("seed",1);

//インスタンスseedをmcとする
var mc :MovieClip = path.seed;

//バージョン情報を取得
var ver :String= System.capabilities.version;
var major_ver = ver.split(" ")[1].split(",")[0];
trace ("ver = " + ver);
trace ("major_ver = " + major_ver);

//今回パブリッシュ設定を7と8で分けたいので
if (major_ver > 7) {
//バージョン8以上対応のswf読み込み
mc.loadMovie("swf/8.swf");
} else {
//バージョン7対応のswf読み込み
mc.loadMovie("swf/7.swf");
}
}


static function main () :Void {
var base :versionManager = new versionManager(_root);
}
}

これをコンパイルすればOK
注意点)
  • コンパイルする時Flash7で書き出さないと本末転倒。
  • swfファイルから相対バスでFlashPlayerを指定しています。

気になった掲示板投稿

新人が育たない… (GAC)
GACというBBSコミュニティに投稿されていたものなのですが、
昨今のデザイナー、プログラマー事情を知るにはよい投稿です。

2007/03/14

[Flash]FAME環境でXML読み込み

FAMEでActionScriptを書こうとすると色々と不便なことがある。
(まだまだ開発されたての環境なので致し方ないが)

さて先日ある案件でXMLデータを読みこんで処理したいといった内容があったのだが、

いかんせん、MacromediaFalshのように簡易的に書くとコンパイルエラーで落ちてしまう。
また、XMLでの検索は面度なのでActionScript用のJSONクラスを用意しても
JSONクラスで落ちてしまう。

結局手書きでやることにした。

作業の流れとしては

  1. XMLインスタンス作成
  2. インスタンス.ignoreWhite プロパティをtrueに設定。
  3. XMLインスタンのonLoadにファンクション設定。
  4. XMLインスタンスに外部XMLをload

XML.onLoad はLoadが実行され終了されて初めて動作するプロパティです。
さて実際に以下に書いてみましょう。

XMLデータ内容

<?xml version="1.0" encoding="UTF-8"?>
<node>
<campany>
<name>test1</name>
<url>http://xxxx.co.jp</url>
</campany>
<campany>
<name>test2</name>
<url>http://yyyy.co.jp</url>
</campany>
<campany>
<name>test3</name>
<url>http://zzzz.co.jp</url>
</campany>
<campany>
<name>test4</name>
<url>http://aaaa.co.jp</url>
</campany>
<!--ここより下には記入しないで下さい。-->
<end><!--このタグは消さないで下さい--></end>
</node>

ActionScript内容

//XMLインスタンス作成
var my_xml :XML = new XML();

// 改行などを無視
my_xml.ignoreWhite = true;

//onLoadのイベントハンドラにfunctionを設定
my_xml.onLoad =
function(success) {
if (success) {
my_xml = this;
// XMLエレメントの取得
var my_xmlnode :XMLNode = my_xml.firstChild;

var name :String = "";
var url :String = "";
var i :Number = 0;

while ( my_xmlnode.childNodes[i].hasChildNodes() ){
name = my_xmlnode.childNodes[i].childNodes[0].childNodes;
url = my_xmlnode.childNodes[i].childNodes[1].childNodes;
trace ( name );
trace ( url );
i++;
}
}
}

//xmlファイルをロード(swfファイルからの相対パスであることに注意
my_xml.load("data.xml");

呼び出したデータを配列に入れるなりなんだなりすれば、使いまわしも出来る。
ただ、そうなるとコードが長めになってしまうので、
別関数もしくはクラスとして定義すればいいだろう。
もっとCoolな書き方はあると思うが、
とりあえず動いたのでメモ残し。

諸注意
  • <end>タグはhasChildNodes()でfalseを出させるために使用。
  • trace()はデバッグ領域に書き出す関数

2007/03/13

ActionScriptと高等言語

ActionScriptと高等言語

月曜日の朝、日曜日に生まれて初めてFPSというものを経験し、疲れ目の莫迦です。


さてちょっと思ったことを書き込み

人間には人間の、
PCにはPCの言葉がある。
プログラムの世界において、人間語とは基本的に英語のことを指す。
プログラムの言葉は16進数や2進数で表されるような機械語を意味する。

この機械語だが、非常にロジカル過ぎて、
正直人間には理解しがたいものだ、
同じく、ファージー過ぎて人間語を理解できる機械は少ない。
いや、機械が直接理解できるということは無い。

そこでPCに仕事をさせたい時には翻訳機を使う。
それがプログラミング言語である。
プログラミング言語は種々様々であり、その中でも人間語(英語)に比較的近い文法を持つものが高等言語とされる。

さらにここからオブジェクト指向言語やらなんやらと細分化されていく。
また、簡易化したり、複雑化したり時と使用目的ごとに高等言語は増えていく。

しかしながら、その根幹は機械語であり、それを英語で分かりやすく表記するという考え自体に変更はない。

なので、一つの高等言語をある程度理解すると
「プログラム的な思考回路」が脳内に出来上がる。

そして、他のプログラム言語を見た時にもそれを
「一般の人よりは理解しやすい」脳になっている。

それを繰り返していくごとに、プログラムのしたいことが見え、初見のプログラムでもある程度動かせてしまう。

それが一般的なプログラマーに求められる経験値である。


さて、今現在出向先の仕事でJavaと社内の仕事でActionScriptをしている。
双方初めての言語であった。
ただ、私にはJavaScriptという言語への知識とVB.NEtに関する知識が事前にあった。

JavaScriptは突き詰めれば完全にプログラムと言ってもいいのだが、
深い段階までいかないとただのお遊び言語である。
(JavaScriptは今一番負のポテンシャルを期待されて注目されている言語でもある。)

VB.NETは完全にオブジェクト指向言語である。

JavaScriptはJavaをベースに簡易化されたものであり、
ActionScriptはJavaScriptを基盤としてFlash用に作成された言語である。

派生されていく言語は親子兄弟のような関係といってもよい、
そういう親類縁者から攻めていくと使える言語の幅は急激に広まる。

なので・・・先輩頼むから勉強してください!


気になった記事

最近の大学生は携帯メールでレポートを書くらしい
オレにはムリ

アップルのMacBookが爆発炎上
あらぁ・・・リンゴ爆発・・・

悪意のJavaScriptで情報が漏えい
XSSの脆弱性ってこんだけ警告されてるのに消えないなぁ

番外編第2回 赤坂さん、Flashを攻める!
ほのぼのとアプリなんかの脆弱性を照会するシリーズ
ほのぼのしてるけど、やってることは超コエー

しかし・・・Httpヘッダーってなんだ・・・
いや、よく聞くけど実際なんのことだか知らないーー;
よく聞くってことは「常識」ってことだよね。
調べよ・・

追記:
HTTPヘッダーとは
→リンク先参照

中身を参照したければ
→リンク先参照(Proxomitron-J)

2007/02/23

[Eclipse][Flash]フリーなFLASH FAME!

フリーなFLASH FAME!

前の記事でFAMEというフリーのFlash開発環境を見つけたと書きました。
FAMEの環境が整ったので、それについて書こうと思うます。


そもそもFAMEとは何か。

これはFlashout+ASDT+MTASC+Eclipseの頭文字をとったものです。

Flashout : ActionScript、ログ吐き
ASDT : ActionScript Development Tool
MTASC : ActionScriptのコンパイラ
Eclipse :
java系PGには欠かせないフリー開発環境ツール


Eclipseをコアとし、
残り3つのツールを組み合わせることで
フリーのFlash作成ツールFAMEとなります。

実際の環境構築において参考にしたサイト


上記二記事を参考にやると、得に躓くことなく環境構築できました。


FAMEを触ってみる
実際動かしてみた感想として、
javaやEclipseでの開発に慣れた人なら使いやすいが、
今までMacromedia Flash で
Flash作成してきた人は正直きついんじゃないか?と思います。
(一部のActionScriptでガリガリ書いてる人は除く、そういう人にはむしろFAMEお勧め)

ピュアActionScriptというのか・・・
FAMEで全て作ろうとすると全部スクリプトでflashを作成しなければなりません。
(これはこれで最軽量なFlashが作れるので魅力的なのですが・・・)
図形描画など、かなり肩が凝る作業になってしまいます

やはりグラフィカルな作業はMacromedia Flashのほうが楽楽です。
FAMEは使えるか?
物理モデルを映像化したり(惑星の動き、自由落下など)
数式ありきな自然現象をFlashで表現したい場合は超お勧め。
(後はフラクタルなども)

それ以外としては、
グラフィカルな編集をMacromedia Flashで
ロジカルな編集をFAMEで、
といったツールを使い分けるのもいいかも。

そうなると今までの、
デザイナーはscriptが苦手、 プログラマはグラフィックが苦手、 でも編集するのは同じflaファイル

な状況から脱却し、
それぞれをその道に特化した人が担当する事により
素晴らしい作品が出来るかもしれません。


蛇足?
今回紹介したFAMEですが、
これだけだとswfに画像を埋め込む事は出来ません。
(外部読み込みで表示する事になる)

swfに画像やFontを埋め込むには、
swfmill が必要です。(FAMESというらしい)

swfmillはxml(swfmlとか言うらしい)
からコンパイルするデータを取得しコンパイルするコンパイラです。

あれ?どこかで聞いたようなツールだな。
そうjavaやってる人なら欠かせないAntです。
なので、さらにAntをかませる事によって。
FAMES + Ant で完全なGUI環境を整えれるよーです。
・・・ここまではまだ手が出ないな。