D0605011 外部JPGを読み込んでスクロールの改造及びComboBoxについて
Name はこたい
Date 2006年05月01日 (月) 09時36分
Message 憲ちゃんさんこんちわ。毎度お世話になってます。
やっとASの事分かってきたような、来てないような微妙な時期です(w
今回もちと2つばかり質問なのですが、

D0504011【外部jpgのサイズを問わず、読み込んで一定の大きさでスクロールさせる】


以前の記事でコレを改造方法を質問しました。
そして、なんとか全部の写真・テキストを外部読み込み&ボタン押で外部読み込みの写真詳細紹介とかまでできたんですが、フと、分からないところが出て来まして、それというのも上記記事では6枚以上の時にスクロールするわけですが、
maisu.txtで3枚と指定すると、表示されている部分の4枚目と5枚目のところには1枚目と2枚目の写真が表示されるわけです。
これを、「4枚以下の場合、ダミーを表示」と改造したいわけです。
自分で考えてみたのだと
スクロールMCのスクリプトで

onClipEvent (data) {
Max = Number(max)+1;
for (i = 1; i < Max; i++) {
setPic(i,i);
}
のfor文ををif文にして、
i = 1
if(i < Max){
setPic(i,i);
i++;
}else{
this[sam].mc.loadMovie("dummy.jpg");
i++;
}
と、記述すれば・・・と思ったのですが、どうも違うみたいで。
こんな単純では済まないような気もするんですが、どうかご助言お願いします。

もうひとつの質問というのは、UIコンポーネントのコンボボックスについてです。
いろんなサイトを見たのですが、うまく解説してくれてるサイトが見つからなくて四苦八苦してるのですが、
「コンボボックスに外部テキストを読み込み表示。コンボボックスで指定したボタン(テキスト?)を押すと、CGI側に変数を渡す」
というものです。
つまりはコンボボックスを一般検索エンジンみたいな検索条件絞込みのコンボボックスみたいにしたいわけですが、
こちらのいじり方、ご存知ありませんでしょうか?
こちらのほうもよしなによろしくお願いいたします。
Response 01
2006年05月01日 (月) 19時43分> 憲ちゃん 
こんばんは、はこたいさん♪

サムネイルと同じ大きさのダミー図形の入った「ダミーMC(基準点左上)」をライブラリに登録。
リンケージで識別子を仮に”dammy”と付け、以下のようにスクリプトを追加します。

 onClipEvent (data) {
   Max = Number(maisu)+1;
   for (i = 1; i < Max; i++) {
     setPic(i,i);
   }
   if (Max <= 5) {
     for (i = Max; i <= 5; i++) {
       sam = "mc" + i;
       this.attachMovie("dammy",sam,i);
       this[sam]._x = i * 82;
       this[sam]._y = 0;
     }
   } else {
     j = 1;
     for (i = Max; i <=Max+6; i++) {
       setPic(i,j);
       j++;
     }
   }
   rightX = -82;
   ・・・以下同じ

コンボボックスの件は、以前の記事でお示しした・・・
■コンボボックスに外部テキストからラベルの値を読み込むには?
■HTMLフォームメニューのようなものを追加できないか?
「Change Handler」で定義するメソッドの中で、CGIに変数を送信するよう定義します。
CGIに変数を送信するのは以下の記事で、「php」を「cgi」と読み替えてください。
■FLASHとPHPの連携(1):データの送受信
Response 02
2006年05月02日 (火) 17時20分> はこたい 
毎度丁寧な回答ありがとう御座います。
1つ目の質問の回答のほうは問題なく成功しました。

2つ目はまだ作りかけ中&CGIいじりの友人が作ってないんで試せないんですが・・・
なんとかやってみます。
また質問をするでしょうが、その時はよしなに宜しくお願いします。
Response 03
2006年05月08日 (月) 20時24分> はこたい 
毎度ホントにお世話になってます。
前回の質問の2つ目なんですが、当方がMX2004なのでsetDataProviderが使えない、とのことで、
関連記事の コンボボックスに外部テキストからラベルの値を読み込むには?
のぱぴよんさんのRESを参考にしてみました。
コンボボックスのインスタンス名は倣って「combo1」です。
コンボボックスにlabel値とdata値をセットしたいと思っています。

1フレーム目に
System.useCodepage = true;
txtVars.load("searchname.txt");
txtVars.onLoad = function(success) {
if(success) {
items.label = txtVars.label.split(",");
items.data = txtVars.data.split(",");
arrayItem = new Array()
for(var i = 0; i < items.length; i++) {
theItem = new Object();
theItem.label = theLabel[i];
theItem.data = theData[i];
arrayItem.push(theItem);
_root.comb1.addItem(arryItem);
}
}
}

と、記述したのですが、うまく表示ができません。
コレはaddItemの使い方が間違ってるんでしょうか・・・
配列の変数への格納は間違ってはいないような気がするんですが・・・
setDataProviderの代用プロパティがあればいいんですが、探したのですが、どうもうまく見当たらなくて・・・
ご教授お願いできますでしょうか。宜しくお願いします。
Response 04
2006年05月09日 (火) 22時22分> 憲ちゃん   
まず、LoadVarsオブジェクトを使って外部データを送受信する場合は・・・
そのための任意の名前の「オブジェクト(送受信装置)」を最初に作成する必要があります。
いきなりオブジェクト名(装置名)「txtVars」を記述しても機能しません。

 txtVars = new LoadVars(); ←「txtVars」という名前のデータ送受信装置を設置
 txtVars.load("searchname.txt"); ←”その装置の中”に外部データの読み込みを開始
 ・・・

※「MCインスタンス名.loadVariables("***.txt")」の場合は、
”指定したMCインスタンスの中”に直接、外部データを読み込むメソッド(命令)なので、
オブジェクトの概念はありません。単にデータの読み込みならこちらのほうが使い方が簡単です。

「ComboBox」の setDataProvider() や getValue() などのメソッドが、
「MX2004」以降使えなくなったばかりか、ComboBoxの扱い方も大幅に変更されているようです。
バージョンを「Flash Player 7」以上にする余程の理由があれば別ですが・・・
パブリッシュ「設定」で、バージョンを「Flash Player 6」にして編集すれば十分動作しますので、
参考にされた記事のRES08の内容を参考にして行ってください。

<関連記事>

このページの先頭へ