Posts Tagged Flash
その後のラジコン
すっかりブログを書くのを忘れてました。
本日返信がついたので思い出した次第です。
あれから、ラジコンはサーバーに繋いだXBeeを介し、flashやjava applet から操作が可能となりました。
構成図はこんな感じです。先日社内のプレゼンで使った資料の流用になります。
Flashから操作できる=Wiiのブラウザからも操作が出来る!。。はずです。
カメラを搭載していないので遠隔から操作は出来ません。今後の課題ですね。
Linuxを搭載するように考えてましたが、消費電力が大きいのと、組み込みLinuxは高価なこともあり、搭載は諦めました。
今後は社内のサービスに何らかの形で技術提供できればと考えております。
会社で走らせました
今日は会社にラジコンを持ち込みました。
人生において会社のデスクにラジコン置く機会は幾つあるだろう。。
今回はLinux抜きでXBeeで通信するalpha版です。
beta版ではネットワークを通じサーバーを通じて操作。
正式版ではお茶の間のWiiから操作を目指します(いつになることか
Linux版は現在調整中です。走行するには解決しないといけない問題が幾つかあります。
操縦はWiiリモコンのBlueToothをMacのBlueToothに繋いでます。
MacからラジコンへはXBeeでシリアル通信をしてます。
ラジコンの実装としては、Arduinoにラジコンのバッテリーを繋ぎ、5Vを制御用、VINをモーター用に電源を回しました。
今回、モータードライバー(TB6612FNG)を使い前進後進を可能にしました。
TB6612FNGはネットに解説ページが無くて配線に悩みましたが、解れば非常に扱いやすい子です。
では、会社で撮った動画をどうぞ!!※撮影禁止区域は映っていないはず。。
趣味で作ったラジコンを会社に持ち込んだりする、こんな私のいるソリューション部ですが、現在人材募集中です。たぶん10月いっぱい。
注) ラジコンは作りません
我こそはと思う方はお問い合わせください。なお、WEB開発経験のある経験者でお願いします。
ムービークリップを特定フレームまで再生してから停止させる
Posted by tanaka in ActionScript, Flash, tips on 2009 年 3 月 31 日
Flashでゲームを作成した場合に、ヒットポイントを表示するゲージを扱うことがあるかと思います。
例えばダメージをうけた場合に特定の位置まで
gotoAndStop([フレーム番号]);
でも良いのですが、これだといきなり減ってしまい味気ない感じになってしまいます。
モーショントゥイーンしつつ指定の位置で停止出来ないものかと考えたのですが、_rootに停止位置フラグを置いて各フレームに、
if(_root.[停止位置の変数] == [フレーム番号]){
this.stop();
}
とするのも芸がありません。(100フレームあったとして全てに書くのもバカバカしいですしね)
こういった場合は次のようにするのが良いのではないでしょうか?(AS2.0です)
ステージ上に再生したいサンプルのムービークリップ (インスタンス名:test_mc )とテスト用の再生開始ボタン(インスタンス名:test_button)を配置します。test_mcの1フレーム目にはstop();を記述して再生はストップした状態です。
(ボタンをクリックした場合に25フレーム目まで再生して停止するサンプルスクリプト)
var test_mc_stop = 1;
test_button.onRelease = function(){
test_mc_stop = 25;
test_mc.play();
}
test_mc.onEnterFrame = function(){
if(this._currentframe == test_mc_stop){
this.stop();
}
}
onEnterFrameイベントで、毎フレーム呼び出されて currentframe で現在のフレーム位置をチェック。
予めボタンクリック時にセットされたtest_mc_stopと同じフレーム位置であれば再生を停止します。
AS3.0ではもう少しスマートな方法があるのかもしれませんが・・・・・
Flashへのフォント埋め込みとライセンス
先日「新聞一面ジェネレータ」を作成した際に、固定で作成している大見出しとは別に自由にテキストを入力できる見出し部分のフォントを予め取りこんでおいて新聞風に見せるようにしていました。
しかし、色々と調べてみたところほとんどのフォントベンダーはFlashへのフォンと埋込を認めておらず、ライセンス違反になるとのことで、急遽修正しました。
基本的には第3者へのフォントの再配布と見なされるそうです・・・
確かに空きに選択した文字がアウトラインを伴って表示されるのですが、そのままフォント情報を抜き取って利用できる形にはなっていないんですよね。
(PDFへのフォンと埋込と配布についても同様に扱われる場合もあるそうです)
AdobeにとってみるとPDFやFlashで持っている機能が一部制限されるわけで、そこをなんとかしようとフォントベンダーとの交渉を重ねているようですが、はやく自由度が上がると良いですね。
ちなみにAdobeによると
小塚明朝・ゴシックについては編集可能な状態での埋め込みを許可しているようです。
http://www.adobe.com/jp/type/browser/legal/embeddingeula.html
※新聞一面ジェネレータでも小塚ゴシックを使用しました。
別件でポストカードの裏面を編集できるサイトを構築しましたが、その際はフォントベンダーさんが仲介されていた案件ということもあり、ベンダーさんのご厚意でフォントを埋込可能でしたが、普段はなかなかそうはいかないでしょうし、ましてや今回のような実験的サイトではほとんど収益が発生しないため無理ですね。
どこか思い切ったメーカーさんで、Flashへの埋め込みOK!という形でリリースしていただけるとかえって売上が上がるように思うのは素人考えなんでしょうか?
TextField へのスクロールバーの追加
Posted by tanaka in ActionScript, Flash, tips on 2009 年 2 月 13 日
通知表ジェネレータにて縮小表示時に文字が読みづらいためサイズ変更したところ1画面に収まらなくなってしまいました。
そこで、スクロールバーを表示させるためにUIScrollBarというコンポーネントを使用してみました。
コンポーネントを使用するためには、[ウィンドウ]→[コンポーネント]で、コンポーネントウィンドウを開き、UIScrollBarをドラッグして、TextFieldの端へ配置します。
(この際にオブジェクトへ吸着にチェックが入っていることを確認しておいてください)
右端側へ吸着させれば垂直の、下部に吸着させれば水平のスクロールバーとなります。
あとは、TextFieldに収まりきらないテキストがセットされると自動的にスクロールバーが表示されます。
ただ、方法によってはUIScrollBarがうまく表示されない場合があります。
- Varsからテキストをセットした場合
- TextFieldの変数名とインスタンス名が同じであった場合
1は、TextFieldに変数名を設定し、変数にテキストを代入することによって内容を切り替えていた場合にスクロールバーがうまく表示されません。
TextFieldにインスタンス名を設定し
[TextFieldのインスタンス名].text = “代入するテキスト”;
というようにtextプロパティからテキストをセットする必要があります。
2はインスタンス名と変数名が同じ場合に変数への代入が優先されてスクロールバーが出ないおそれがあるためです。
TextFieldにインスタンス名をつけ、 ‘TextField.text’プロパティを使ってテキストを設定してください。TextFieldにはインスタンス名に加えて変数名も使用できます が、スクリプトに混乱を生じるおそれがありますので、変数名は削除することをお勧めします。
ちなみに、縦横50%のサイズに縮小した場合にスクロールバーが細すぎるため、幅を増やせないかとあれこれ挑戦してみましたが、配置時にサイズ変更をしても、実行してみると元のサイズ(幅16pix)で表示されてしまいます。
Flash CS3 ドキュメンテーションを確認すると
UIScrollBar コンポーネントは、オーサリング時にも実行時にも縦横に変形させることができます。ただし、垂直方向の UIScrollBar の幅、水平方向の UIScrollBar の高さを変更することはできません。
とのことでした。好きな幅に設定できるといいんですけどね。
好みの形にするには自作するしかないようです。



最近のコメント