[↑PageTop]
ブログ検索 タグ検索
検索タグ:「flash技術メモ」を含む記事は見つかりませんでした。
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
今回、クイズ対策で、パネルチェックシートを作ってみました。

カレンダーの時は、うまくスプライトの複製を扱えず
カレンダー用のテキストボックス21個を全部手で配置する力業で切り抜けた訳ですが、流石に今回もそれでは進歩が無さ過ぎるので、なんとかスプライトの複製を使いこなして、1個のスプライトを作るだけであとは、複製して自動で配置したいと考えました。

スプライトの複製方法は、以前の記事で書いたとおり。
実際、複製するだけならカレンダーの時も出来た訳で、結構簡単に出来ます。
[複製&配置]のサンプル
for(y=0; y<9; y++){
for(x=0; x<9; x++){
NewMc = 複製元のインスタンス名.duplicateMovieClip("mc_"+y+x, 100+x*10+y);
NewMc._x = x * 10;
NewMc._y = y * 10;
}
}


こんな感じで複製して配置するだけなら簡単。

前回もつまずいたのはその先で複製したスプライトを後からどの様に操作するのか?
複製元のスプライトにスクリプトか書いてあるものを複製して、複製したスプライトのその関数を呼び出す事が出来ない!

何がしたいかというと、配置時に各スプライトに、自分の位置や表示内容を渡して(初期設定)、クリック時などのイベントにその値を使用したかったのです。
実は、この方法、このままでは使えませんでした

実は、複製した1フレーム後じゃないと関数が呼び出せなかったのです。
解っていれば簡単な事なのでしょうが、こんな事で延々と悩んでしまいました。

↓はPalaflaの右上画面。イベントリストだと思ってください
 1| 1|アクション|スクリプト|  |[複製&配置]
 2| 1|アクション|スクリプト|  |[初期設定]
こんな感じで、別々にスクリプトを書けば問題なく関数を呼び出す事が出来ました。

[初期設定]のサンプル
for(y=0; y<9; y++){
for(x=0; x<9; x++){
_root["mc_"+y+x].関数名();
}
}


絶対忘れそうなので、メモメモ
2008/11/20 21時頃

スプライトの複製

スプライトの複製
2種類の方法がある。
ひとつは、タイムライン上に配置され、現在インスタンスが存在するスプライトを複製する方法。
複製元のインスタンス名.duplicateMovieClip(新しいインスタンス名の文字列,深度);

もう一つが、attachMovieを使用した、スプライトを複製する方法。
attachMovieは、イベントに登録されていない、左ペインにあるスプライトを複製出来ます。
ただし、左ペインにある状態では、スクリプトが記述できないため、別の方法で設定する必要がある。詳しくはここを。

深度に付いては注意が必要。
本家のFlashでも、タイムラインに置いたMCにはマイナス深度が割り当てられてて
ASで作ったMCにはプラス深度を指定、というのが仕様というかお約束らしい。
実は、背景をattachMovieで表示してみたら、一番上に表示されて、全部隠れてしまった。
2008/11/20 21時頃

関数を使用する

関数を使用する
functionで、定義可能だが、1フレーム目のフレームアクションとしてスクリプトを書かないと、onClipEvent(load)から、呼び出せない。(これで苦労した)
onClipEvent(load){
}
function getbg(xxx){
return df;
}
- //← この区切りの前に書け!
onClipEvent(enterFrame){
}
テキストフィールドをボタンにしてスクリプトを書く場合
 イベントハンドラにスクリプトを書くことになる。
イベントハンドラとは、イベントの発生を監視し、発生時にイベントに対応した処理を行うScriptの事。
on (event) {
(ボタンを押した時の処理)
}
と言った形で記述することになります。
on ( event ) ハンドラに指定可能なイベントは、
・press
・release
・releaseOutside
・rollOver
・rollOut
・dragOver
・dragOut
・keyPress "Key"
keyPress イベントの後ろの"Key"には、取得したいキーを指定します。
英数字、記号はキーをそのまま引用符("")でくくって指定し(例:keyPress "z"、keyPress "5"、keyPress ":")、
特殊キーは引用符("")とカギカッコ(<>)でくくって指定します(例:keyPress ""、keyPress ""、keyPress
"")。となります。

on (press) {
(ボタンを押した時の処理)
}
-
-
on (rollOut) {
(ボタンの上にカーソルがない時の処理)
}
2008/11/20 21時頃

スプライトにASを書く

スプライトにたいして、ActionScriptを書く場合
onClipEvent ( event ) ハンドラに記述します。
onClipEvent ( event ) ハンドラに記述可能なイベントは
・load
・unload
・enterFrame
・mouseMove
・mouseDown
・mouseUp
・keyDown
・keyUp
・data

onClipEvent(load){
}
-
onClipEvent(enterFrame){
}
途中に有る "-" だけの行ですが、これは区切りとして必要。
2008/11/20 21時頃

ムービーを再生

指定したフレームに移動して、ムービーを再生。
背景の切り替えに使用しました。
制御したいスプライトのインスタンス名がmc、再生するポイントに、ラベルをつけて、point1、point2 とする。
 _root.mc.gotoAndPlay("point1");
2008/11/20 21時頃

配列アクセス演算子

カレンダーの様に大量のテキストフィールドに規則的な名前をつけて、ループなどで制御したいときのメモ。
配列アクセス演算子 を使用して制御せよ。

ダイナミックテキストにして、変数名にtext_11 ~ text_19,text_21 ~ text_99を指定。
これらのテキストフィールドを、スプライト上に配置して、スプライトのインスタンス名をmcとする。
テキストフィールド は、ins_text_xx といったインスタンス名となります。

ダイナミックテキストで関連づけられた変数への代入
 this["text_"+ x + y ] = 値;    mcの内部ならこれで OK
 _root.mc["text_"+ x + y]=値;  他のスプライトからなら、パスを指定する。

インスタンスへのプロパティへのアクセス(例:.background)
 _root.mc_cal["text_"+ x + y ].background=true;
2008/11/20 20時頃

ParaFla! メモ

すっかりはまってしまった、Flash作成ですが、その時に調べたことのメモを・・・。

区立ぱらふら予備校
 ParaFla!の基礎を学べ!

Parafla Script 基礎
配列アクセス演算子
関数を使用する
ボタンのスクリプトを書く

スプライト関係
スプライトにActionScriptを書く
ムービーを再生
スプライトの複製

HOME : TOP

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。