2007年07月13日
●時間を計りたい
Q)クライアントにムービーの再生時間を指定されたのですが、
ムービーの時間を調べる方法はありますか?
A)基本はフレーム数/1秒あたりのフレーム数です。
ループやファイル読み込みなど何か処理が入っているなら、
ストップウォッチなどの外部の時計で判断するしかないと思います。
(画面上に経過時間を表示する方法もあります。)
また、再生時間がどこまで正確に必要なのかわかりませんが、
だいたいでという事なら、ブラウザのキャッシュをクリアして実行したり、
違うPCで実行したりなど、いくつかの環境で試すといいと思います。
投稿者 usuaji : 11:58 | コメント (0) | トラックバック
2007年06月04日
ボタンを押すとムービークリップがあらわれるようにしたい
いくつか方法がありますが、
(1)ビジブル
mymc_mc._visible=false;
で消しておいて
on (release) {
mymc_mc._visible=true;
}
で見るようにする。
(2)座標設定
表示座標をズラしてステージ外にする
(3)1フレーム目を空に
mcの1フレーム目を空白にして、普段1フレーム目にしておく。
タンを押すと2フレーム目になるようにする。
投稿者 usuaji : 12:51 | コメント (0) | トラックバック
時間を指定してアクションを起こしたい
何通りかあります
(1)単純に40秒分のフレームを確保する。
(2)時間を監視して実行する。
(3)”setInterval ”で待ち時間を指定する。
こちらにサンプルがあります。
http://www.usuaji.net/flash/archives/2007/04/post_35.html
投稿者 usuaji : 12:14 | コメント (0) | トラックバック
2007年04月19日
n秒後に動く
サンプルは1秒毎に1回動くもの。
Id=setInterval ( countup,1000);
時間待ちにはsetIntervalを使うと便利。
上記の例だと、1000ミリ秒ごとに関数countupをコールします。
clearInterval(Id);
でインターバル動作の設定を停止します。
サンプルでは、黒いボタンにスクリプトが書いてあります。
initest.zip(Flash8)
投稿者 usuaji : 13:30 | コメント (0) | トラックバック
2007年02月23日
ムービークリップを切り替える
TVを見るみたいに複数のムービークリップを切り替えるサンプルです。
ムービークリップのフレームを切り替えると、そこにおいてある各フレームのムービークリップを表示することになります。
ボタン1は再生終了で準備中画面に戻ります。
ボタン2はループ再生になっています。
mc_flip.zip(flash8)
投稿者 usuaji : 16:38 | コメント (0) | トラックバック
2007年01月03日
順番に再生する
3つのムービークリップを順番に再生したいという場合のサンプルです。
くわしい解説はメルマガ7号で
http://www.melma.com/backnumber_164033/
Flaファイルはこちら
jyunban.zip(Flash8)
投稿者 usuaji : 22:56 | コメント (0) | トラックバック
2006年12月12日
シンプルなデジタル時計
WEBサイトに時計を貼り付けたり、日付によって画面を変えたい!なんてことは結構ある。
そんな時にはDateオブジェクトで日付、時間などを得ることが出来る。
注目ポイントは、内部での月のデータは0-11になるので、表示の際に補正する事である。
var today_date:Date = new Date();
var date_str:String = (today_date.getFullYear()+"/"+(today_date.getMonth()+1)+"/"+today_date.getDate());
date_txt.text = date_str;
var time_str:String = (today_date.getHours()+":"+today_date.getMinutes()+":"+today_date.getSeconds());
time_txt.text = time_str;
time1.zip(Flash8)
投稿者 usuaji : 03:25 | コメント (0) | トラックバック
2006年12月11日
パブリッシュをFlash6から7に変更したら動かない
Flash6から7への移行には注意が必要です。
Flash7以降では大文字小文字を区別します。
ラベル、変数の大文字小文字も厳密に区別されます。
全て小文字に統一した方が良いでしょう。
他にも、こまかい部分で変更があるようです。
投稿者 usuaji : 03:22 | コメント (0) | トラックバック
再生しているフレーム番号を得たい
フレーム番号は_currentframeで取得できます。
フレームが10の時は処理する場合には、以下のように書きます。
if (_currentframe == 10) {
処理
}
投稿者 usuaji : 03:20 | コメント (0) | トラックバック
ムービークリップをボタンで再生、停止したい
ムービークリップの名前がshikaku_mcだとすると、ボタンを作って、以下のように書きます。
・動かすボタン
on(release){
_root.shikaku_mc.play();
}
・止めるボタン
on(release){
_root.shikaku_mc.stop();
}
playstop.zip
投稿者 usuaji : 03:19 | コメント (0) | トラックバック
2006年11月09日
作り方がわからない
こんなものを作りたいけど、作り方がわからない、という人がいます。
それで、詳しくきいてみると、
「ファイルを読み込んで、リンクをクリックすると、そのページに移動する。」
などと、作りたい機能を順番にいったりします。
結局、その言葉を整理すれば、ムービーの作り方になります。
整理して、適切に並べて、1つずつクリアしていきます。
そのとき、1つずつ、別のムービーで作ると、原理がわかります。
ゴールまで一気に全部作りたくなる気持ちもわかりますが、すべてのムービーは単純な仕組みの集まりです。
投稿者 usuaji : 21:51 | コメント (0) | トラックバック
2006年10月15日
全てのレイヤーにフレームを挿入したい

・WindwosXPでFlash8の場合
レイヤーの1番上、目盛りの部分をクリックすると、全体への指定になります。
メニューの”挿入””タイムライン””フレーム”を選択すると、全体に挿入できます。
(同じ動作がF5でも出来ます。沢山挿入したい場合はF5キーで。)
投稿者 usuaji : 13:11 | コメント (0) | トラックバック
2006年09月09日
ダブルクリックの判定
dtObj = new Date();
t1 = dtObj.getTime();
これで1970年1月1日からの経過時間(ミリ秒)を調べられます。
2回のクリック時間の差を引き算して、指定時間(ここでは1秒、値では1000)以内ならOK、そうでないならNGになります。
1回目のクリックか、2回目かの判定は専用のフラグを用意して判定します。
では、作りかたを一応書いておきます。
(1)新規ファイルでステージに3つのダイナミックテキストを配置、それぞれの割り当て変数をt1,t2,t3,t4とする。
(2)ボタンを1つ配置し、インスタンス名をtest_btnと命名。
(3)フレーム1に下のスクリプトをはる。
(4)CTRL+Enterで実行。
以上

投稿者 usuaji : 03:23 | コメント (0) | トラックバック
2006年07月23日
マイクロソフトのパッチに対応してみた
IEのActivXのセキュリティ対策でFlashの動作が1クリック多くなる現象の回避。
実験ページ
Flash関係の人はマイクロソフトのパッチに注意に対応してみた。
こんな現象。

Adobeサイトでアップデートしてゴニョゴニョするとアップデート完了ながら、謎も多し。
詳しくはこちらに書く予定です。
実験ページ
【追記 2006/07/23】
AdobeのサイトにDreamwaver8のアップデータがあって、アップデートすればOKらしいので実験。
HTMLファイルを編集中にFlashを配置すると、当該HTMLファイルと同じ階層にScriptsというフォルダが生成され、そこにAC_RunActiveContent.jsというファイルが置かれます。
Flashより、こちらを使う方が便利かも、とは思いました。
Adobe DW8アップデータ
投稿者 usuaji : 18:48 | コメント (0) | トラックバック
2006年06月07日
SWFを他のムービーに読み込んだら動かない
Flashでswfを読み込むときは、ターゲットパスが大切になります。
(他の場合でも、ですが。)
ターゲットパスがよくわからないという人向けに、物で例えてみます。
机の上に手帳がのっています。
最初はそのページをめくるという命令があったら、
<「机」の上の「手帳」のページをめくる。>
となってたとします。
この「机」の上と「手帳」の間に「ノート」を差し込んだら、上の指定方法では上手くいきません。
(人間ならなんとかしますけど。)
この場合、
<「机」の上の「ノート」の上の「手帳」のページをめくる。>
となります。
別の指定方法では、その命令が手帳に書いてあった場合には、
<この「手帳」のページをめくる。>
などと書くことも出来ます。
たとえ話はここまで。
ここで、「ページをめくったら命令が見えなくなっちゃうじゃないか!」とか言わないように。
たとえ話なので、理解できればOKです。
理解できなければ・・・
OSのディレクトリの指定の様な物・・・で、わかるかな?
さて、本題。
・スクロールするswf ムービーA とする。
・読み込む土台のswf ムービーB とする。
・ムービーAをムービーBのムービークリップmc1に読み込む。
ムービーAは_root(一番上)の階層にテキストエリアのmain_textとボタンを配置し、命令はこんな感じになっています。
on (rollOver) {
_root.main_text.scroll -=1;
}
ここでは_rootからの指定にですね。
絶対指定という指定方法で、わかりやすいのですが、別のムービーに読み込むと事情が変わります。
この辺はもう何年も何百回も繰り返しているFAQ中のFAQであり、同時に初心者がつまずくポイントでもあります。
さて、
_root.main_text.scroll -=1;
これをムービーBのmc1に読み込むと次のように指定するのが、正しくなります。
_root.mc1.main_text.scroll
テキストエリアもボタンもmc1に読み込まれているわけで、単純に
main_text.scroll -=1;
と書けばOKです。
また、もし、ボタンをムービークリップでかこんでいるなら
_parent.main_text.scroll -=1;
と書きます。
_parent は1こ上の階層という意味で、相対指定といいます。
読み込むswfの方には_rootから始まる指定(絶対指定)は使わない方がよいということになります。
投稿者 usuaji : 21:14 | コメント (0) | トラックバック
2006年06月03日
ボタンを押してメールソフトを起動する
ボタンに”mail_btn”と名前を付けておきます。
mail_btn.onRelease = function() {
getURL("mailto:メールアドレス");
}
stop();
このスクリプトをフレームスクリプトに書いておきます。
こんな感じでHTMLのリンクのように”mailto”を使います。
注意としては、OSやブラウザによっては対応していない可能性があるということです。
必要な環境でのチェックをしておいた方がよいでしょう。
また、テキストエリアを配置し、CGI経由でメールを送る方法もあります。
この場合はもうちょっと複雑な工程が必要です。
投稿者 usuaji : 04:07 | コメント (0) | トラックバック
2006年05月14日
AVIを開くサンプル
ボタンにこのようなスクリプトを書くと、AVIを再生します。
on (release) {
getURL("http://www.usuaji.net/flash/archives/test.avi");
}
投稿者 usuaji : 13:59 | コメント (0) | トラックバック
Flashゲームの作り方
”米光一成&荻原貴明:ゲームデザイン研究所”では、ゲームデザイン+Flashゲームの作り方を紹介。
ゲームデザイン(企画の方ね)の考え方とFlashの実際のスクリプトの構造。
両方とも、重要な話だし、わかりやすく説明されていると思うので、是非ご覧下さい。
かなりサービスして公開しちゃってるなぁ、という感じ。
Web2.0的なセンスなのかもしれません。
投稿者 usuaji : 00:43 | コメント (0) | トラックバック
2006年03月28日
パラメータの受け渡し(福笑い)
今回は福笑いをテーマにしたサンプル。
左目の位置だけを移動出来ます。
移動したあとOPENボタンを押すと、別のウィンドウがひらいて、
同じ顔が表示されます。
このURLをメールで送信などすれば、遠隔地にいるひとに
同じ画像を見せることが出来ます。
OPENボタンのスクリプトはこちら
on (release) {
url = "kao.swf?kaomode=view&lex="+int(_root.hidarime_mc._x)+"&ley="+int(_root.hidarime_mc._y);
_root.test = url;
getURL(url);
}
URLを生成して、
ムービー名.swf?変数名=値
という形式で、swfに値を渡してます。
受け渡ししたい変数が複数ある場合には半角の&でつなぎます。
このときの注意は
・変数名はFlashの予約語を使用しない。
・変数名の1文字目に数字を使用しない。
(まあ、Flashの変数の規則を知っておいてね、という事です。)
・値はすべて文字で送られる。
なので、文字の場合も”(ダブルコーテーション)はいりません。
数字も文字として送られ、したのスクリプトではガッツリ代入してますが、
そのへんはFlashの臨機応変さで数値に変換されています。(たぶん)
・値に2バイト文字を使用する場合にはエンコードする。
え~と、漢字ひらがなの場合には、工夫が必要です、ということで、詳しくは書きません。
今回、このサンプルを作る段階で分かったのですが、この形式の指定方法は
Flash5までの方式で、マクロメディア推奨の方法ではないようです。
(Flash8でも動きます。)
さて、受け取った値はこちらで再生します。
これをフレームスクリプトに記述します。
// paramater
_root.test = kaomode;
if ( kaomode == "view") {
_root.test = "目の位置設定";
_root.hidarime_mc._x = lex;
_root.hidarime_mc._y = ley;
}
stop();
kao20060328.zipサンプルダウンロード
注)このサンプルはサーバー上にアップロードしないと動きません。
「ムービー名.swf?変数名=値」の形式ではローカル上で動かない為です。
(?以降が消えます)
投稿者 usuaji : 13:26 | コメント (2) | トラックバック
2006年03月09日
ボタンを押すと他のボタンが消える
”ボタンを押すと他のボタンが消える”というサンプルです。
ボタンといってもFlash上ではムービークリップという分類ですので、注意してください。
もとの状態にもどすにはしたのボタンを押します。
各ボタン(ムービークリップ)にはbtn1_mcからbtn4_mcと名前が付いています。
それを全部表示(On)するfunctionと全部非表示(Off)するfunctionを用意します。
(ルートのフレーム1に置きます。)
function allOn() {
btn1_mc._visible = true;
btn2_mc._visible = true;
btn3_mc._visible = true;
btn4_mc._visible = true;
}
function allOff() {
btn1_mc._visible = false;
btn2_mc._visible = false;
btn3_mc._visible = false;
btn4_mc._visible = false;
}
各ボタンには以下のスクリプトを書きます。
・全部を非表示にする。
・自分を表示する。
on (release) {
_root.allOff();
this._visible = true;
}
こんな感じでムービークリップを制御できます。
ここで重要なのは
・functionて便利!
・全体の仕組みをよく考えよう。
という感じです。
面白いね。
投稿者 usuaji : 01:29 | コメント (0) | トラックバック
ランダムで何かを表示する
ボタンを押したら1~6のどれかを表示する。
これは画面の真ん中に”number_mc”というムービークリップがあって、そのフレームの1~6が、各フレームSTOPで止めています。

乱数とムービークリップのフレーム指定で、指定の図柄などを表示できる方法です。
この命令をルートに記述すれば、起動時1回だけフレームを指定する事により、毎回違った絵を表示するなどが出来ます。
on (release) {
var tmp = int(Math.random()*6+1);
trace(">"+tmp);
_root.number_mc.gotoAndStop(tmp);
}
2006年02月28日
【書籍】おしえて!!FLASH8 ActionScript
その筋では有名というか、定番の”おしえてシリーズ”。
Flash8版のスクリプト中心の本が発売です。
スクリプト以外の基本操作用”おしえてFlah8”はもうちょっと後の発売らしいです。
新機能のフィルタ操作なども書いてあるらしいので、オレも買うよ!
![]() | おしえて!!FLASH8ACTION SCRIPT Flas毎日コミュニケーションズこのアイテムの詳細を見る |
Shared Object を使ったカウンタのサンプル
Shared Object を使ったカウンタのサンプル を作成。
一応、リンクのみ。
他のページを開いても値が残ります。

