gainer.forum
Welcome, Guest. Please login or register.
September 09, 2010, 10:58:56 PM

Login with username, password and session length
Search:     Advanced search
* GAINER.cc HOME
* +GAINER
* フォーラムへの登録方法の説明(日本語版
1443 Posts in 398 Topics by 372 Members
Latest Member: yuucha
* Home Help Search Calendar Login Register
+  gainer.forum
|-+  Japanese(日本語)
| |-+  バグ&要望
| | |-+  ActionScript3対応パッケージ
« previous next »
Pages: [1] 2 Go Down Print
Author Topic: ActionScript3対応パッケージ  (Read 20461 times)
maimuzo
Newbie
*
Posts: 10


View Profile Email
« on: July 18, 2007, 04:00:48 AM »

はじめまして。maimuzoと申します。

先日gainerのキットをやっと組み立てまして、早速gainer_lib_flash_v1-0-1r1付属のサンプルswfを起動して遊んでいたところです。
一通りサンプルswfにて動作チェックを行い、今度は何か作ってみようと思ったところですが、仕事でFlex2を使っている関係上、
Flex2+gainerの組み合わせでやってみようと思い、実際にコンパイルするとエラーになってしまいました。 Embarrassed

調べてみると、ActionScript2とActionScript3では結構異なる部分が多く、gainer.*はそのままではコンパイル不能なことがわかりました。
簡単に直せるかちょっと手をつけてみましたが、AS2のあるイベントがAS3では無くなっていたりと、ちょっと簡単には対応できそうにありません。 Cry

そこで確認なのですが、ActionScript3対応パッケージをリリースする予定はありますか?
もし予定が無ければ、ぼくがちょこちょこ直して、もし動いちゃった場合、そのソースを提供することはできますか?
ここ数年はAS2系も需要は続くと思うので、AS2系とAS3系が共存する形となると思いますが、コードメンテナンスの都合上、どのような方針でAS3対応版を作ったらいいでしょうか?


#上記環境なので、サンプルのfla内のコードはFlashが手元に無かったためFlashトライアル版をダウンロードしてきて見ました。
#可能なら、サンプルコード部分だけでも外部.asファイルにしてもらえると気楽に扱えるかなと思いました。
Logged
mayfair
The team leader of the GAINER v1 development team
Administrator
Hero Member
*****
Posts: 577



View Profile WWW
« Reply #1 on: July 19, 2007, 03:09:44 PM »

はじめまして。Gainer開発チームの小林です。 Smiley

GainerのASライブラリに興味を持っていただき、ありがとうございま
す。

そこで確認なのですが、ActionScript3対応パッケージをリリースする
予定はありますか?

まず、GainerのAS用ライブラリに関してAS3対応を行う予定は今のとこ
ろありません。

未確定な部分が多くてまだ仕様などの一般公開をしていないのですが、
現在未踏ソフトウェア創造事業の支援を受けてFunnelというプロジェク
トを進めています。

当初はGainer v2.0のような感じで考えていたのですが、様々なフィード
バックを受け、Arduinoなどにも対応するツールキットという方向で準
備を進めています。先日、サンフランシスコで行われたミーティング用
に作成した資料がこちらに置いてあるのですが、FunnelServerという
サーバを介してI/Oモジュールと通信し、AS3やProcessing、Rubyなど
のライブラリでシンプルにI/Oを扱えるようにする、というものです。

http://www.yapan.org/main/files/sketching_in_hardware.pdf

12月に一般公開することを目標に作業を進めていますが、細かいバグが
取れて現在のGainerと同様に利用していただけるようになるまでにはそ
の後少しかかるのではないかと思います。このような状況ですので、現
在の開発チーム内でGainerのAS3対応にリソースを配分することが難し
く、maimuzoさんのご提案はとても嬉しく思います。 Smiley


Quote
もし予定が無ければ、ぼくがちょこちょこ直して、もし動いちゃった場
合、そのソースを提供することはできますか?

もちろん可能です。GainerのレポジトリはSourceForge.netで管理して
いますので、まずはそちらに開発者として登録していただき、アカウン
トをお知らせいただければ、開発者としてSubversionのレポジトリにア
クセスできるようになります。開発中のソースコード管理などに利用し
ていただけると思います。


Quote
ここ数年はAS2系も需要は続くと思うので、AS2系とAS3系が共存する
形となると思いますが、コードメンテナンスの都合上、どのような方針
でAS3対応版を作ったらいいでしょうか?

はい、これは要検討ですが、現状ではflash、processing、maxmspと
いうフォルダ構成になっています。しかし、AS3の場合にはFlashだけで
はありませんし、Flexでの利用も増えてくることが予想されます。です
ので、例えばですがactionscript3というフォルダを作っていただいて、
その中に追加していただく、というのがよいかなと思います。勿論、他
にもっと良い案があればそちらで構いません。


Quote
#上記環境なので、サンプルのfla内のコードはFlashが手元に無かったた
めFlashトライアル版をダウンロードしてきて見ました。
#可能なら、サンプルコード部分だけでも外部.asファイルにしてもらえ
ると気楽に扱えるかなと思いました。

こちらの件、Flexからとなると確かにそうですね。今後作成するサンプ
ルは、この点も考慮していきたいと思います。

それでは、今後ともよろしくお願いいたします。
Logged
maimuzo
Newbie
*
Posts: 10


View Profile Email
« Reply #2 on: July 21, 2007, 08:21:33 PM »

maimuzoです。
お返事ありがとうございます。

Funnelの件、PDFを拝見しました。
これも面白そうなプロジェクトですね。
完成したらぜひ使ってみたいです。


Gainer flashライブラリのAS3対応版ですが、
・Gainer開発チーム非公認
・(開発がfunnelにシフトしているのでGainerの機能拡張はないだろうという予想の元)拡張性は余り考えずに動けばいいや的スタンス
・gainer_lib_flash_v1-0-1r1を元にAS3版を分岐
・gainer_lib_flash_v1-0-1r1を解凍するとできるflaフォルダと同列にactionscript3というフォルダを追加し、ここにfla\gainerとfla\examples\basic見合いのAS3対応版ソースを作る
・もし完成しちゃったらSourceForge.netにコミットする予定
・でももし完成する前に技術的につまづいちゃったらカッコワルイので完成してからお知らせ
みたいな方針で進もうかと思います。

完成したらまたここに書き込みます。
Logged
mayfair
The team leader of the GAINER v1 development team
Administrator
Hero Member
*****
Posts: 577



View Profile WWW
« Reply #3 on: July 21, 2007, 08:36:14 PM »

こんにちは。 Smiley

Gainer flashライブラリのAS3対応版ですが、
・Gainer開発チーム非公認
・(開発がfunnelにシフトしているのでGainerの機能拡張はないだろうという予想の元)拡張性は余り考えずに動けばいいや的スタンス
・gainer_lib_flash_v1-0-1r1を元にAS3版を分岐
・gainer_lib_flash_v1-0-1r1を解凍するとできるflaフォルダと同列にactionscript3というフォルダを追加し、ここにfla\gainerとfla\examples\basic見合いのAS3対応版ソースを作る
・もし完成しちゃったらSourceForge.netにコミットする予定
・でももし完成する前に技術的につまづいちゃったらカッコワルイので完成してからお知らせ
みたいな方針で進もうかと思います。

完成したらまたここに書き込みます。

楽しみにしています。なお、完成した場合にはもちろん非公認ではなく公認ということでよろしくお願いします。 Wink

今日、名古屋での勉強会に参加したのですが、その場でもGainerのAS3対応に関する質問をいただきました。リリースされたら使いたいという人は多いと思いますので、よろしくお願いします。

もし途中で疑問点など出てきた場合には、このフォーラムでもPM(パーソナルメッセージ)でも構いませんので、気軽にどうぞ。
Logged
maimuzo
Newbie
*
Posts: 10


View Profile Email
« Reply #4 on: July 24, 2007, 06:00:39 PM »

途中経過ですが、ちょこちょこ進みまして、あとタイマーの絡みが直れば動き出しそうかなぁというところです。

Quote
楽しみにしています。なお、完成した場合にはもちろん非公認ではなく公認ということでよろしくお願いします。


うぅ、公認となると、ちゃんと動作確認しないとなぁ。 Roll Eyes
(まぁ、普通SVNリポジトリに入れてもらうということは公認になるということですよね)

実際、テストはどのように行えばいいでしょうか?
fla\examples\basic
のASソースはつけようと思っているので、これが動けばOKですか?
それとも、xUnit的に定型テストパターンはありますか?

あと、ちょっと気が早いですが、sourceforge.netにアカウント作りましたので、sourceforgeの方からメール送っておきました。
「ここの動きはこんな感じでいいの?」みたいなところがあるので、一度動いたところでさらっと見てもらったほうがいいカナと思ってます。

Logged
mayfair
The team leader of the GAINER v1 development team
Administrator
Hero Member
*****
Posts: 577



View Profile WWW
« Reply #5 on: July 24, 2007, 08:25:24 PM »

途中経過ですが、ちょこちょこ進みまして、あとタイマーの絡みが直れば動き出しそうかなぁというところです。

おお、素晴らしいですね。

Quote
うぅ、公認となると、ちゃんと動作確認しないとなぁ。 Roll Eyes
(まぁ、普通SVNリポジトリに入れてもらうということは公認になるということですよね)

あ、いえいえ、こちらの件に関しては、experimental扱いでリリースに加えるということでもとりあえずはいいかと思いますので、あまりプレッシャーを感じていただかなくとも大丈夫ですよ。 Wink

Quote
実際、テストはどのように行えばいいでしょうか?
fla\examples\basic
のASソースはつけようと思っているので、これが動けばOKですか?
それとも、xUnit的に定型テストパターンはありますか?

特にテストパターンという物はありませんので、basicに入っている物で動作確認が取れればまずは十分ではないかと思います。


Quote
あと、ちょっと気が早いですが、sourceforge.netにアカウント作りましたので、sourceforgeの方からメール送っておきました。
「ここの動きはこんな感じでいいの?」みたいなところがあるので、一度動いたところでさらっと見てもらったほうがいいカナと思ってます。

早速ありがとうございました。先ほど登録しておきました。もし、動作確認ができるタイミングになりましたら、また教えてください。

以上、取り急ぎ…。
Logged
maimuzo
Newbie
*
Posts: 10


View Profile Email
« Reply #6 on: July 26, 2007, 04:41:51 PM »

Quote
早速ありがとうございました。先ほど登録しておきました。もし、動作確認ができるタイミングになりましたら、また教えてください。

sourceforgeアカウントの件、早速の手配ありがとうございます。

昨日
gnr.turnOnLED();
gnr.turnOffLED();
gnr.onPressed
gnr.onReleased
までは動いたんで、そろそろリポジトリに登録しようかと思っています。

checkoutまでは出来たので、ソースツリーに配置しようかと思ったところですが、
trunkに配置するのもどうかと思ったので、迷ってしまいました。

成果物は
/trunk/gainer/libraries/flash
の直下にactionscript3というフォルダをつくり、その中一式となりますが、
実際にはどこに配置すべきですか?
(branch構造で作業したことがないので、フォルダを用意していただけたらそこに入れようかと)


#ちなみにsourceforgeのコミット時パスワードとかって、sourceforgeのアカウントなんでしょうか?
Logged
mayfair
The team leader of the GAINER v1 development team
Administrator
Hero Member
*****
Posts: 577



View Profile WWW
« Reply #7 on: July 26, 2007, 04:49:12 PM »

こんにちは。

Quote
昨日
gnr.turnOnLED();
gnr.turnOffLED();
gnr.onPressed
gnr.onReleased
までは動いたんで、そろそろリポジトリに登録しようかと思っています。

素早いですね〜。さすがです。 Smiley


Quote
checkoutまでは出来たので、ソースツリーに配置しようかと思ったところですが、
trunkに配置するのもどうかと思ったので、迷ってしまいました。

成果物は
/trunk/gainer/libraries/flash
の直下にactionscript3というフォルダをつくり、その中一式となりますが、
実際にはどこに配置すべきですか?
(branch構造で作業したことがないので、フォルダを用意していただけたらそこに入れようかと)

trunkに直接追加していただいていいですよ。今までも、実験用に改造を加えたものを作る時にはbrunchを作っていましたが、基本的には1本です。
AS2を廃止してAS3のみに…というようなものでもありませんので、そのまま追加という形で構いません。


Quote
#ちなみにsourceforgeのコミット時パスワードとかって、sourceforgeのアカウントなんでしょうか?

はい、これはそれぞれの開発者のアカウントとパスワードで行うはずです。もし、うまくcommitできないようであればまたお知らせください。


それでは、楽しみにいたしております。 Wink
Logged
maimuzo
Newbie
*
Posts: 10


View Profile Email
« Reply #8 on: July 27, 2007, 11:34:43 AM »

Quote
trunkに直接追加していただいていいですよ。今までも、実験用に改造を加えたものを作る時にはbrunchを作っていましたが、基本的には1本です。
AS2を廃止してAS3のみに…というようなものでもありませんので、そのまま追加という形で構いません。

了解です。
昨日デモアプリ上でアナログ出力のコントロールまで動いたので、あとは大丈夫だろうとコミットしました。
(aout0の出力値が変わるところまでは確認しましたが、aout1~3は未確認。まぁ、この辺は何も変更してないので大丈夫だと思いますが)

一応、AS2→AS3での変更点をhistory.txtとしてメモしました。
あと、イベント関係が結構変わったので、新旧対比として旧側のコードをコメントアウトして残してあります。
この2点は、確認が終わり次第消した方がいいかなと思っています。

現在Flex2Builderにて警告3つだけ出ていますが、動作には影響ないです。
これはメソッド定義にて引数の型が宣言されてないからですが、メソッド内部でisを使ってインスタンスの種類を調べるようなロジックなので、
この場合何で型宣言すればいい?で悩んでほっといてます。(Objectにしとけばいいのかな?)

demo.mxmlは適当に作ったので、動作のおかしい(または他のイベントに関連付けた方が使いやすい)ものがあるかもしれないです。
DigitalOut/DigitalIn/AnalogInについては、回路を組む時間と部品が無かったので未テストです。
(これもロジックは変更してないので動くと思っています)

あーそういえば、コンパイル済みdemo.swfを含めてないですね。
入れておいたほうが良いかな。
Logged
mayfair
The team leader of the GAINER v1 development team
Administrator
Hero Member
*****
Posts: 577



View Profile WWW
« Reply #9 on: July 27, 2007, 01:34:05 PM »

こんにちは。

SF.netからcommit通知のメールが来たのをみて「おお」と思っておりました。

せっかくですので、Flex 2 SDKでビルドしようとしているのですが

Code:
$ mxmlc -source-path="../../" button.as
Loading configuration file /Developer/SDKs/flex_sdk_2/frameworks/flex-config.xml
/Users/mayfair/Documents/development/gainer/libraries/flash/actionscript3/examples/basic-as/button.as: Error: A file found in a source-path must have an externally visible definition. If a definition in the file is meant to be externally visible, please put the definition in a package.

というエラーメッセージが出てまだ解決できていません。恐らく、Flex Builder 2ではツール側で自動的に解決してしまっている問題で、mxmlcでコンパイルする場合のみ設定ファイルが必要、というようなことですよね。

後で時間が取れたら引き続き調べてみようと思います。

din関係は、コンパイルができたらこちらで動作確認してみますね。
Logged
maimuzo
Newbie
*
Posts: 10


View Profile Email
« Reply #10 on: July 27, 2007, 11:07:47 PM »

せっかくですので、Flex 2 SDKでビルドしようとしているのですが


Quote
Code:
$ mxmlc -source-path="../../" button.as
Loading configuration file /Developer/SDKs/flex_sdk_2/frameworks/flex-config.xml
/Users/mayfair/Documents/development/gainer/libraries/flash/actionscript3/examples/basic-as/button.as: Error: A file found in a source-path must have an externally visible definition. If a definition in the file is meant to be externally visible, please put the definition in a package.

というエラーメッセージが出てまだ解決できていません。恐らく、Flex Builder 2ではツール側で自動的に解決してしまっている問題で、mxmlcでコンパイルする場合のみ設定ファイルが必要、というようなことですよね。

後で時間が取れたら引き続き調べてみようと思います。

din関係は、コンパイルができたらこちらで動作確認してみますね。

ああああ、すいません。
gainerフォルダへライブラリパスを通すか、domo.mxmlと同階層にgainerフォルダがあればいいはずです。

コンパイル可能なディレクトリ構成にしておけばよかったですね。
Logged
mayfair
The team leader of the GAINER v1 development team
Administrator
Hero Member
*****
Posts: 577



View Profile WWW
« Reply #11 on: July 27, 2007, 11:47:59 PM »

こんにちは。 Smiley

ああああ、すいません。
gainerフォルダへライブラリパスを通すか、domo.mxmlと同階層にgainerフォルダがあればいいはずです。

コンパイル可能なディレクトリ構成にしておけばよかったですね。


あ、いえいえ。mxmlcに慣れていれば一瞬で解決する問題だと思いますので…。とりあえず、actionscript3/gainerをコピーしてビルドに成功するところまで確認しました。念のためにwarningをコピー&ペースとしましたが、これは以前おっしゃっていた既知の内容ですよね。

Quote
$ mxmlc demo.mxml
Loading configuration file /Developer/SDKs/flex_sdk_2/frameworks/flex-config.xml
/Users/kotobuki/Documents/development/gainer/libraries/flash/actionscript3/examples/flex2/gainer/Proxy.as(7): col: 20 Warning: return value for function 'anonymous' に型宣言がありません。

                        return function() {
                                        ^

/Users/kotobuki/Documents/development/gainer/libraries/flash/actionscript3/examples/flex2/gainer/Digital.as(40): col: 23 Warning: parameter 'values' に型宣言がありません。

                public function out(values):void {
                                    ^

/Users/kotobuki/Documents/development/gainer/libraries/flash/actionscript3/examples/flex2/gainer/Analog.as(42): col: 25 Warning: parameter 'ch' に型宣言がありません。

                public function out(ch,value:Number=0):void {
                                    ^

/Users/kotobuki/Documents/development/gainer/libraries/flash/actionscript3/examples/flex2/demo.swf (149681 bytes)


早速demo.swfを実行してみると、無事にgspには接続されるのですが、以下のようなエラーが表示されてしまいます。「続行」をクリックしてもなんどもこのメッセージが表示され、「全て却下」してもLEDなどが動作してくれないようです。

Quote
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
   at demo/dIn()
   at demo/::switchInput()
   at flash.utils::Timer/flash.utils:Timer::_timerDispatch()
   at flash.utils::Timer/flash.utils:Timer::tick()

どこかチェックしてみるべき項目などありますでしょうか?後少しという感じですので、とても楽しみなのですが…。
Logged
maimuzo
Newbie
*
Posts: 10


View Profile Email
« Reply #12 on: July 28, 2007, 12:40:39 PM »

Quote
早速demo.swfを実行してみると、無事にgspには接続されるのですが、以下のようなエラーが表示されてしまいます。「続行」をクリックしてもなんどもこのメッセージが表示され、「全て却下」してもLEDなどが動作してくれないようです。


Quote
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
   at demo/dIn()
   at demo/::switchInput()
   at flash.utils::Timer/flash.utils:Timer::_timerDispatch()
   at flash.utils::Timer/flash.utils:Timer::tick()


どこかチェックしてみるべき項目などありますでしょうか?後少しという感じですので、とても楽しみなのですが…。

ががーん。 Cool
実はこちらはFlex2Builder上のデバックモードでコンパイルして動作検証していたのですが、パブリッシュモードでコンパイルすると同様のエラーが表示されました。
ちょっと調べてみますね。

ちなみに、aOut0~3とdOut0~3は動作検証できました。
今日パーツ買ってこれると思うので入力系もテストできるかなぁと思ってます。
Logged
maimuzo
Newbie
*
Posts: 10


View Profile Email
« Reply #13 on: July 28, 2007, 03:23:35 PM »

自己レス。

パブリッシュモードでコンパイルして動くようにしました。
というより、gainerのonRedyを待たずに初期化したためのエラーでした。

一応コンパイル済みのdemo.swfを追加しましたが、Flex2 SDKでもコンパイルが通ることを確認しました。
リポジトリに入れたdemo.swfはSDKでコンパイルしたものです。

SDKコンパイル用のバッチファイルも用意しました。(と言ってもパスの問題でそのままは使えないでしょうけど)
警告はどうしましょうね。よい方法が浮かばないです。


パーツを買ってきたので、dInとaInを試してみたんですが、 Huhという感じです。
自分的には動いているのかどうかさえわからない感じでした。

初めてアナログインプットを試したんですが、使ってないアナログ入力ポートの取得値ってランダムに変動するものですか?
一応、aIn.swf(配布物に含まれていたもの)を動かしてみましたが、同じような感じでした。
おいらのgainerモジュールがおかしいのかな?
(そういえば半田ごてなんて十数年触ってなかったし…)


Logged
mayfair
The team leader of the GAINER v1 development team
Administrator
Hero Member
*****
Posts: 577



View Profile WWW
« Reply #14 on: July 28, 2007, 03:59:43 PM »

こんにちは。

修正していただいたもので、自分の環境でもビルドできるようになったことを確認しました。 Smiley

しかし、その後demo.swfを開いて動作確認を…と思ったのですが、LEDもボタンも反応しませんでした。ここで少し悩みましたが、Flash Playerのセキュリティ設定だということがわかりました。Flash 8でパブリッシュしたものだと、ダイアログが表示されるのですが、Flex 2でビルドしたものだとこのダイアログが表示されないようなのです(Flash CS3は未確認ですのでこの後で試してみます)。

※以前も、別件でこれにはまったことがありましたのですぐに気がつきましたが、AS3系になって仕様変更があったのでしょうか。それとも私のところだけの問題でしょうか…。

グローバルセキュリティ設定を変更した後は、無事にgsp経由で通信できるようになりました。

Analog Inputに関して、左下にReflesh input statusが1秒間ごとに表示されるのですが、値が更新されないように見えます。AS2版のain.swfでは値が変化しますので、たまたま手元にあるI/Oモジュールが壊れているということではないようなのですが…。


Quote
初めてアナログインプットを試したんですが、使ってないアナログ入力ポートの取得値ってランダムに変動するものですか?
一応、aIn.swf(配布物に含まれていたもの)を動かしてみましたが、同じような感じでした。
おいらのgainerモジュールがおかしいのかな?
(そういえば半田ごてなんて十数年触ってなかったし…)

これは正常です。 Wink

何も接続していないポートはアンテナと同じ状態になりますので、値が不定になります。もしどうしても気になるようであれば、10k〜1MΩ程度の抵抗器を経由してGNDに接続すると安定すると思います。

以上、取り急ぎのご報告でした。また何かわかりましたらご報告いたします。

Logged
Pages: [1] 2 Go Up Print 
« previous next »
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC Valid XHTML 1.0! Valid CSS!