今日は雛祭りですね。ひなあられ食べないと(ここんとこ毎日食べているが・・・)
社長は某センターへ出向。一人、アクションスクリプトと向き合う。
今日のお題はスライドショーの次へボタンを押していって、11枚目が表示されるタイミングで、横に10枚出ているサムネイルも11〜20が表示されるようにするところからやってみる。
次へのボタンの制御はクリックするとsinryoku_mcの次のフレームにいくように書いてある。
next_mc.onPress = function() {
sinryoku_mc.nextFrame();
current_frame.text = sinryoku_mc._currentframe;
};
ここになにかを加えればいいと思った。
sinryoku_mcの10フレームから11フレームに進むときに何かをすればいい。でも20から21にいくときも同じことをやりたい。
↓
フレーム数が10の倍数の時にサムネイルがのっているMC・thumnail_baseのy座標を動かせればいい。
↓
フレーム数を10で割って答えが整数のときにthumnail_baseのy座標を動かせればいい。(むずかしそう。)
↓
フレーム数を10で割って余りがゼロの時にthumnail_baseのy座標を動かせればいい。(これを採用!)
アクションスクリプトの本の算術演算子の説明を見ていて、%が「割ったあまりを求める」って書いてあったので、これを利用することを思いついた。
cf = sinryoku_mc._currentframe;
if( cf % 10 == 0){
thumnail_base._y += -360;
}
というのをボタンのスクリプトの中に追加したらできた!やったー。
こんなしょうもないことで喜んじゃって・・・とお思いの方もいらっしゃるでしょうが、できた時すごくうれしかったです。
続いてサムネイル10枚を一覧で表示する画面をつくる。
これはシーンを追加した。するとプレビューするとものすごい高速でシーン1とシーン2が切り替わってうまくいかない。
そこで、シーン1の一番したのレイヤーにstop();をいれてみた。
ボタンを配置してそれを押したらシーン2に移るようにした。(これが意外となかなかうまくいかず、フレームラベルをつけたらうまくいった。)
そしてサムネイル一覧。
AttachMovieでできたMCを横に8枚ならべて、9枚目からは下の行にくるように並べたい。ずーっと考えてもわからなかった。
AttachMovieってMCを生み出す関数なので、並べようと思うのは私だけじゃないはず、と思いネットで色々調べる。ん~、まだ人のスクリプト見ても全然わからない(泣
しかし、またif関数でやってとりあえず思ったように並ぶには並んだ。が、きっとこれはイケてないやり方だと思う・・・。
ちなみに、一枚の大きさが隣との隙間を含め43X63px。
for (i=0; i<10; i++) {
mc = thumnail_base.attachMovie("sinryoku", "thum"+(i+1), i+1);
mc._xscale = 10;
mc._yscale = 10;
//2行目のサムネイルをずらす
if (i>=8) {
mc._x = i*63-504;
mc._y = 43;
} else {
mc._x = i*63;
mc._y = 0;
}
mc.gotoAndStop(i+1);
//サムネイルとメイン画像との関連づけ部分(ここはうまくいっていません)
mc.onPress = function() {
gotoAndPlay("scene1");
sinryoku_mc.gotoAndStop(this._currentframe);
current_frame.text = sinryoku_mc._currentframe;
trace(sinryoku_mc._currentframe._name);
};
}
サムネイル一覧のサムネイルをクリックしたら、シーン1の同じサムネイルがクリックされた状態を作り出したくてまたあれこれやるも、シーン1に戻りはするが、1枚目が表示されたまま。だんだん頭が疲れてきて、今日のところは断念。
しかし、スクリプトが言語と呼ばれる意味がなんとなくわった気がした。日本語で、この部品をこのようにしたい、と具体的に言葉にすることができると次のステップに進める。
”言語”なんだから、理数系が苦手な私でもなんとかなるかなぁ。
最近のコメント