No.1ベストアンサー
- 回答日時:
1つの形しか提示できませんが,実際は色んな形が考えられます。
発展や応用は色々と考えてみてください。
新規ドキュメント作成で,
ステージ上に "ダイナミックテキスト" のテキストフィールド を用意します。
文字の色は黒などステージの背景色以外の色にして,
たくさん文字が入るように少し横長にしておいてください。
そして,そのダイナミックテキストを選択した状態で,
下のプロパティインスペクタを表示させて,"インスタンス名" を付けます。
この説明では,「eventName」 というインスタンス名を付けたとしておきます。
そして,
新規でレイヤーを追加して,2レイヤーにします。
□ レイヤー 筆・・|○| ←新規で作ったレイヤー
□ レイヤー 筆・・|●| ←「eventName」がある
その新規で作ったレイヤーを ActionScript 専用レイヤーと頭の中で決めておいて,
そのレイヤーのフレーム1を選択し,
下のアクションパネルを表示させて,
そのアクションパネルに次のようなスクリプトを書きます(コピペ可能)。
------------------------------------
// イベントデータ配列 eventArr を作成
var eventArr = new Array();
//
// イベント日とイベント名を用意(2次元配列※可変)
eventArr.push(["2007/6/19", "雨まつり"]);
eventArr.push(["2007/6/20", "雨まつり"]);
eventArr.push(["2007/6/21", "雨まつり"]);
eventArr.push(["2007/6/22", "雨まつり"]);
eventArr.push(["2007/7/15", "海で遊ぼう"]);
eventArr.push(["2007/7/16", "海で遊ぼう"]);
eventArr.push(["2007/7/17", "海で遊ぼう"]);
eventArr.push(["2007/8/13", "盆まつり"]);
eventArr.push(["2007/8/14", "盆まつり"]);
eventArr.push(["2007/8/15", "盆まつり"]);
eventArr.push(["2007/8/16", "盆まつり"]);
// 定形文字列 finite の設定(※可変)
var finite = " 申し込み期間中です!";
//
// 変数 eventLen に配列の要素数を取得
var eventLen = eventArr.length;
// ☆ちょっと検証(本番は不要)
trace("イベント数="+eventLen);
//
// 今の時刻オブジェクトを作成
var nowDat = new Date();
// 年の取得
var now_y = nowDat.getFullYear();
// 月の取得
var now_m = nowDat.getMonth()+1;
// 日の取得
now_d = nowDat.getDate();
// 今日の日付文字列を作成
var today = now_y+"/"+now_m+"/"+now_d;
// ☆ちょっと検証(本番は不要)
trace("今日="+today);
//
// テキストフィールド eventName に表示の初期化
eventName.text = "";
//
// イベント数の回数ループ
for (var i = 0; i<eventLen; i++) {
// eventArrの0番要素と today の文字列が等しいとき
if (eventArr[i][0] == today) {
// その 1番要素を テキストフィールド eventName に表示
eventName.text = eventArr[i][1]+finite;
}
}
------------------------------------
そして,
「制御」→「ムービープレビュー」してもらうと,
できたものや, trace 関数で出力される確認用データなどが表示されると思います。
Flash の時刻(日付)取得は,ローカルPCの時刻(日付)です。
パソコンの日付を変更すると,Flash で取得する時刻(日付)も変わるので,
色んな日でちゃんとデータが表示されるかどうか実験できます。
2次元配列のデータも同じ形で違う内容に変えてもらうと,データも自作可能です。
数も自由です。
//////////////////////////////////////////////////////
~ その他補足 ~
◎ getMonth について
getMonth() で得られる月は,0月から始まります。
日本人の方がデータを作成しやすいように,
var now_m = nowDat.getMonth()+1;
でわざと 1 を加算して取得しています。
◎ 配列について
配列の要素(エレメント)番号も0番から始まります。
上の場合例えば,
eventArr[0][0] は "2007/6/19" です。
eventArr[0][1] は "雨まつり" です。
eventArr[4][0] は "2007/7/15" です。
eventArr[4][1] は "海で遊ぼう" です。
順次そういう感じで認識してもらうとプログラムやデータが理解できると思います。
配列を使わずに,普通の変数群を大量に用意してもかまいませんが,
配列にした方が .length で要素数が取得できたり,
[日付,イベント名] のようにデータをペアで扱えるので使い勝手が良いため配列でデータを用意しています。
2次元配列は,簡単に言うと Flash 内に Excel の表を用意したようなものです。
Excel など表計算ソフトはデータを2次元平面に表すソフトですよね。
Excel で,あるシートに,
A列 B列
1 2007/6/19 雨まつり
2 2007/6/20 雨まつり
3 2007/6/21 雨まつり
4 2007/6/22 雨まつり
5 2007/7/15 海で遊ぼう
6 2007/7/16 海で遊ぼう
7 2007/7/17 海で遊ぼう
8 2007/8/13 盆まつり
9 2007/8/14 盆まつり
10 2007/8/15 盆まつり
11 2007/8/16 盆まつり
というデータを用意しておいて,
------------------------------------
Sub ShowEvent()
' 定形文字列 finite の設定(※可変)
finite = " 申し込み期間中です!"
' 変数 eventLen にアクティブシートA列の最終行数を取得
eventLen = ActiveSheet.Range("A65536").End(xlUp).Row
' ☆ちょっと検証(本番は不要)
MsgBox ("イベント数=" & eventLen)
' 今日の日付を取得
today = Date
' ☆ちょっと検証(本番は不要)
MsgBox ("今日=" & today)
' C列の1行を空白に
ActiveSheet.Cells(1, 3) = ""
' イベント数の回数ループ
For i = 1 To eventLen
' A列のi行 と today が等しいとき
If ActiveSheet.Cells(i, 1) = today Then
' C列の1行 に B列のi行 の値を代入
ActiveSheet.Cells(1, 3) = ActiveSheet.Cells(i, 2) & finite
End If
Next i
End Sub
------------------------------------
というマクロを実行させているのと同じようなことです。
言語や仕様や外観が違うだけで,やっていることはほとんど同じですね。
また,上の例では使っていませんが,
データが表形式なので,ソートや削除(上にシフト)などなども簡単になります。
って,Excel を持ち出した方がややこしかったでしょうか...?
◎ その他応用
上ではテキストのデータを変えているだけですが,
シンボルとしてイベントごとのムービークリップを用意しておいて,
ある日付になるとその日付用のムービークリップを attachMovie() する方法なども考えられます。
「リンケージとは?」
http://www.1art.jp/flash2/chapter/33/33.htm
また,「NowLoading...」さえ付ければ,
日付に応じてメインムービー(_root)や,ムービークリップのフレーム移動(gotoAndStop())も可能です。
とにかく,
同じ原理で無数に色々なことはできますから,
色々考えてみてください。
この回答へのお礼
お礼日時:2007/06/22 20:44
ありがとうございます!!
無事できました。
スクリプトをじっくり一つ一つ見てみてるとなるほどって感じでした。
いろいろ研究してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Application.InputBoxの表示形式 2 2022/08/09 22:32
- その他(Microsoft Office) エクセルVBA イベントの切り替え 2 2022/05/01 03:51
- その他(行事・イベント) 地域のイベント開催しようと思ってます。 ワークショップを子供向けにやりたいです。 企業的な協力者はい 2 2023/04/28 19:43
- 会社・職場 転職について 7 2023/03/07 06:29
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- 政治 政党 買収 3 2022/07/07 16:00
- 関東 京葉線の案内表示のピクトグラムについて 1 2023/04/24 00:06
- クレジットカード クレジットカードの振り込みによる臨時支払いを申し込んだら振込先記載ページをなくした 1 2023/04/20 20:06
- 消費者問題・詐欺 お金を取り返すことは可能でしょうか? 4 2023/01/07 13:17
- ビジネスマナー・ビジネス文書 グーグルフォームでイベントに申し込みました。するとご記入ありがとうございましたと自動返信が来たのです 2 2023/04/03 16:21
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
既存画像(gif または png)の背...
-
ワードプレスで、画像の横に文...
-
HTMLで、ホームページが作れる...
-
青いタイトルバーのダイアログ...
-
ビジュアルスタジオの警告が出...
-
ホームページビルダーの右サイ...
-
ホームページビルダー15で作っ...
-
PC版のサイトをスマホに対応さ...
-
ビフォアーアフターのページは...
-
今さらですがHPを作成するに当...
-
ホームページビルダーを複数の...
-
HTMLリンク飛びがうまくいかない
-
ビルドとリビルドの違いを教え...
-
ホームページを作りたいのです...
-
ページの内容コピペ 範囲が広い...
-
ホームページ制作で教えてくだ...
-
ホームページビルダーおすすめ?
-
GASについて
-
無料でホームページを作成した...
-
ホームページを作成したいので...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NET の配列の要素数
-
変な質問ですみません、n番目の...
-
配列の要素番号を取得するには?
-
VBでボタンを押すと画像をラン...
-
Vba 配列の中の特定文字列の位...
-
DataGridでCTRLキーを押さずに...
-
IDの自動採番について
-
複数の変数宣言を、for文で一気...
-
VB6 複数行のテキストをリスト...
-
重複しない乱数の生成
-
重複しない乱数整数を発生させる。
-
C言語のsizeof(サイズオブ)演算...
-
入れ替える処理
-
絵を描き、その都度のxy座標を...
-
正規表現でタグの中身を抜き取...
-
2次元配列 ソート
-
Action Script 2.0 配列の比較
-
画像をランダムに表示するには
-
ランダムに数字を並び変える方法は
-
景品パネルの作り方
おすすめ情報