トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     DBから読み込ませた値をFlash上で計算したい
投稿するにはまず登録を

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
森 巧尚
Åê¹ÆNo.2442
投稿日時: 2003-12-23 20:21
モデレータ
居住地: 宝塚
投稿: 650
使用環境:
.5/CS4/Safari3
XP+2000//IE6
Re: DBから読み込ませた値をFlash上で計算したい
頭がごちゃごちゃしたまま作ると結局そういうものができてしまいますよ。まずは頭をすっきりさせましょう。

Keitaさんが言っておられるように2つのプログラムにわけて、作ってみるのがいいと思います。

 1.まず外部からの読み込み部分を作る
「DBからFlashに読み込ませた値を」の部分ですね。外部からデータを受け取るところができたら、後はタイマーでその値を使うだけですから、タイマーとデータ読み込みは切り離して考えられます。

 2.タイマー部分だけを作る。
「値をflashのタイムライン上で時間経過とともに減らしていきたい」の部分ですね。
 DBから値が渡ってきたと仮定して、用意した変数の値をタイムライン上で減らすように作ってみましょう。

2つが動けばあとはつなげるだけですね。


----------------
森 巧尚
http://www.ymori.com

morimori
Åê¹ÆNo.2437
投稿日時: 2003-12-23 18:50
新米
居住地:
投稿: 3
使用環境:
Re: DBから読み込ませた値をFlash上で計算したい
お返事ありがとうございます。
そうですねもう一度整理してみます。

1.タイマーは出来上がっています。
_rootに入るとタイマーを作動させています。タイマーが過ぎると別なフレームに移動させるようにしています。
まずムービークリップ化してその中にタイマーをコンポーネント化しています。コンポーネントにフレーム1に以下のスクリプト
//グローバル変数の初期化
remainTime = seigenTime;
bActive = 10;
//スタート&ストップ用メソッドの定義
function startTimer () {
bActive = 10;
_root.PointWindow.ViewPoint.point = seigenTime;
remainTime = seigenTime;
startTime = getTimer();//スタート時の内蔵タイマーの値をとっておく
}
//タイマーの動作を行うメソッドの定義
function action () {
if (bActive) {
//startTimeから現在までの秒数をテキストボックスに表示
var nowTime = Math.floor((getTimer()-startTime)/1000);
remainTime = seigenTime-nowTime;
//0になったら、timeOut()メソッドを送る
if (remainTime<=0) {
remainTime = 0;
bActive = 0;
//eval(targetObject).timeOut();
_root.movie.gotoAndStop(4);
}
}
}
//このタイマーの値を調べる時に使うメソッド
function value () {
return remainTime;
}
this.action();

//////このムービークリップを外部a.swfとしてb.swfにloadMovie()関数で読み込んでいます。_rootはb.swfのタイムライン上です。この_rootにムービークリップ化してあるダイナミックテキストを配置しています。ボタンクリックでvisible =false;とtrue;の処理をしてあります。
2.DBからはまだ成功していません。
仮にV.stadio.netでXMLを生成させて、_rootのムービークリップにくるんだダイナミックテキストに変数cを割り当てています。そしてそのフレーム1には
//以下スクリプト//
engine.loadDB();
loading._visible = true;

function resultback( result, obj )
{
loading._visible = false;

if( result )
{
if( obj.command == "info" )
{
1.2.3.c( engine.getaInfo( obj.B ) );
}else{
1.2.3.c( "ASP.NETとの通信に失敗しました。" );
}
}

function engineCall( func, args )
{
if( engine.loading == false )
{
loading._visible = true;
engine[ func ].apply( engine, args );
delete args;
}else{
1.2.3.c( "現在送信中です。もうしばらくお待ち下さい。" );
}
}
}
※この辺は植木友浩先生のFLASH SERVERSIDE SCRIPT SAMPLEをつかわさせていただきました。
ここからcに読み込まれた値を時間制限とともに引くために
init();

function init()
{
this.createEmptyMovieClip( "c", 1 );

}
c.attachMovie( "TMInfo", "A", BObj );

c = seigenTime;
bActive = 10;
//スタート&ストップ用メソッドの定義
function startTimer () {
bActive = 10;
c = seigenTime;
startTime = getTimer();//スタート時の内蔵タイマーの値をとっておく
}
//function stopTimer () {
// bActive = 0;
//}
//タイマーの動作を行うメソッドの定義
function action () {
if (bActive) {
//startTimeから現在までの秒数をテキストボックスに表示
var nowTime = Math.floor((getTimer()-startTime)/1000);
c = seigenTime-nowTime;
//0になったら、timeOut()メソッドを送る
for ( i=c; i<=c; i-- ) {
c-nowTime;
_root.movie.gotoAndStop(4);
}
}
}
//このタイマーの値を調べる時に使うメソッド
function value () {
return c;
}

このようなスクリプトをダイナミックテキストをムービークリップ化したDのなかのフレーム1に書きました
途中経過はこんなところです。
function action () {
if (bActive) {
//startTimeから現在までの秒数をテキストボックスに表示
var nowTime = Math.floor((getTimer()-startTime)/1000);
c = seigenTime-nowTime;
//0になったら、timeOut()メソッドを送る
for ( i=c; i<=c; i-- ) {
c-nowTime;
}
_root.movie.gotoAndStop(4);
}
}
以上長々出申し訳ありませんがここでいきずまっています。どう処理したらよいのでしょうか。
ゲスト
Åê¹ÆNo.2435
投稿日時: 2003-12-23 17:56
Re: DBから読み込ませた値をFlash上で計算したい
どうんもこんにちわ

混乱されているようですが、問題を切り分けて質問されるのがよいかと思います。
少なくとも、
 1.外部からの読み込みはできているのか?
 2.タイマー単独では出来上がっているのか?
あたりを踏まえてどこで行き詰まっているかの情報が無いと、どなたもなかなかアドバイスできないと思いますよ。
morimori
Åê¹ÆNo.2431
投稿日時: 2003-12-23 17:14
新米
居住地:
投稿: 3
使用環境:
DBから読み込ませた値をFlash上で計算したい
DBからFlashに読み込ませた値をflashのタイムライン上で時間経過とともに減らしていきたいのですが、どの参考書を読んでもタイマーセットはあるもののどう改造してよいやら、またはまったく違ったスクリプトを使うんでしょうか?頭がごちゃごちゃになっています。どなたかご教授ください。
流れ的にはDBはSQLserver→ASP.Net→xml(REMOTINGは使っていません)→flashこんな感じです
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops