//波紋発生クラス(makeRipple.as)を使い波紋を繰り返し発生(これはあくまでも例です)
function ripple() {
var hamon:makeRipple=new makeRipple(1);
}
ripple();
ID = setInterval(ripple, 3000);
//グローフィルターの設定
import flash.filters.GlowFilter;
var glow:GlowFilter = new GlowFilter(0x000000, 0.8, 2, 2, 8, 3);
System.useCodepage = true;
//流れる文字のフォーマット
var txtformat = new TextFormat();
txtformat.size = 20;
txtformat.color = 0xffffff;
txtformat.bold = true;
//流れる文字表示用MC、テキストボックス作成
this.createEmptyMovieClip("txtBox",10);
txtBox.createTextField("tf",10,0,0,1000,30);
txtBox._y = 250;
var sdData = new LoadVars();
var rvData = new LoadVars();
var prevcT = 0;
var limitInterval = 20;
//データログファイルからDATA読み込み・表示
rData("reading");
//文字列の表示
function displayStr(str) {
txtBox.tf.text = str;
txtBox.tf.setTextFormat(txtformat);
var str_w = txtformat.getTextExtent(str).width;
txtBox.filters = [glow];
txtBox._x = Stage.width;
onEnterFrame = function () {
txtBox._x -= 8;
if (txtBox._x<-str_w) {
txtBox._x = Stage.width;
}
};
}
//PHPとの交信、DATA取得
function rData(mode) {
rvData.onLoad = function(success) {
if (success) {
displayStr(rvData.msg);
} else {
errMsg.text = "送受信エラー";
}
};
sdData.mode = mode;
sdData.sendAndLoad("telop.php",rvData,"POST"); }
//更新文字列のインプットと送信
submit_btn.onRelease = function() {
if (inputBox.text) {
errMsg.text = "";
var currentTime = new Date();
var cT = currentTime.getTime()/1000;
if (cT-prevcT<limitInterval) {
errMsg.text = "連続更新(20秒以内の再更新不可)";
} else {
var str = inputBox.text;
srData("writing",str);
}
prevcT = cT;
} else {
errMsg.text = "contents未記入";
}
};
//PHPとの交信
function srData(mode, str) {
rvData.onLoad = function(success) {
if (success) {
displayStr(rvData.msg);
} else {
errMsg.text = "送受信エラー";
}
};
sdData.mode = mode;
sdData.str = str;
sdData.sendAndLoad("telop.php",rvData,"POST");
}
|
●文字列は、onEnterFrame で流していて、文字列全部がステージ左に消えた時点で右から再登場させている、文字列の長さは、
var str_w = txtformat.getTextExtent(str).width
によって取得している。
●PHPとの交信は
sdData.sendAndLoad("telop.php",rvData,"POST");
で行っていて、読み込み時には'reading'、書き込み時には'writing'をdataとしてPHPに送っている。これはPHPが1つのファイルになっていてその区別が必要となるから。
また、telop.phpが同じディレクトリーに置けない場合はそこにパスを通すこと。 他のドメインにPHPをおく場合は、そのドメインのルートに crossdomain.xml をおく必要があるが、これに関してはネットで探せば解説ページがいくつもあるのでそちらを参照のこと。
|