Script/switch
switch(myName){
case "a":reStr= "A";break;
case "b":reStr= "B";break;
default:reStr= "";
}
TOPへ
movieClip/X,Y座標をセット
myX=10;
myY=10;
myNo=eval("_root.mapas."+String(N+15));
setProperty(myNo, _x, myX);
setProperty(myNo, _y, myY);
TOPへ
movieClip/オブジェクトの大きさや座標
_root.mapas._xscale
_root.mapas._width
_root.mapas._yscale
_root.mapas._height
_root.mapas._x
_root.mapas._y
こんなふうにしてセット
_root.mapas._x=testX;
TOPへ
movieClip/ダブルクリック
前回にクリックした時間を覚えさせておく。
onClipEvent(mouseUp){
genkai=50*this._xscale/100
if(_global.gTime2>new Date().getTime()-300){
処理。
}
_global.gTime2=new Date().getTime();
}
TOPへ
movieClip/ドラッグさせる
onClipEvent(enterFrame){
this.startDrag(true);
}
ムービークリップにのみ可能。
※一度配置したグラフィックをあとで
ムービーに変更しても
アクションを記述できない。
TOPへ
はまったところ/Illustratorからの変換
グラデーションやクリッピングパスはうまくいかない。
線はアウトラインしない。
点線はIllustrator10の透明を分割で。
ただし点線が折れ曲がっている部分はうまくいかない。
小さいオブジェクトは変換精度が荒い。拡大して変換し
Flashで縮小する。
TOPへ
はまったところ/オブジェクトの指定
_root.obj1.myBtn._x
とかActionScriptで階層をたどるが
このオブジェクト名はムービークリップまたはボタンの
インスタンス名。
シンボル名は関係ないので要注意。
また間にグラフィックオブジェクトが入っていても
インスタンス名がつけられないので無視される。
レイヤーも関係ない。
TOPへ
はまったところ/オブジェクトの指定
_root.obj1.myBtn._x
とかActionScriptで階層をたどるが
このオブジェクト名はムービークリップまたはボタンの
インスタンス名。
シンボル名は関係ないので要注意。
また間にグラフィックオブジェクトが入っていても
インスタンス名がつけられないので無視される。
レイヤーも関係ない。
TOPへ
はまったところ/ライブラリのシンボルをステージに配置
まずライブラリに登録したムービークリップを右クリックし
リンゲ−ジを選ぶ。識別子をつけActionScript用に書き出す。
シンボル名は関係ないので注意!
_root.mapas.attachMovie("リンゲージ名",String(N+15),N+15);
第2引数は新しいインスタンス名
第3引数は前後関係。これが他のオブジェクトとかぶると前のオブジェクトは消える。
TOPへ
はまったところ/変数からオブジェクトの指定
変数からオブジェクト名を生成してオブジェクトを指定したいが
ObjName="_root.mapas."+myAry2[1];
はエラーになる。
evalを使うとうまくいく。
ObjName=eval("_root.mapas."+myAry2[1]);
どうやらオブジェクト番号をevalで取り出しているのではないだろうか?
こういう重要なことはおっきく書いていてほしい。
TOPへ
サンプル/アクセスカウンター
ライブラリに0〜9の名前でムービークリップを作っておく
1フレーム目//下記のようにPOSTしないと再読み込み時に値が増えない
loadVariablesNum("http://localhost/take/count.cgi", 0, "POST");
2フレーム目//空のフレーム
3フレーム目cnt=String(cnt);
if(cnt.length<1){
gotoAndPlay(2);//読み込んでいなければ2〜3をループ
}else{
keta=8-cnt.length;
ketaStr=new String();
for(i=0;i<keta;i++){
ketaStr+="0";
}
//cnt2=ketaStr+cnt;
haichi(ketaStr+cnt);
stop();
}
function haichi(myStr) {
//myStr=new String("0000123");
for(i=0;i<myStr.length;i++){
buf=myStr.substr(i,1);
objname="my"+i;
_root.attachMovie(buf,objname,i);
num=20+i*22
//cnt2+=num;
_root[objname]._x = num;
_root[objname]._y = 25;
}
}
#PerlのCGI
#count.txtを用意しておく
#!/usr/bin/perl
open(DATA,"+< count.txt");#読み書きモード
@data=<DATA>;
$data[0]++;
seek(DATA,0,0);#ファイルカーソル移動
print DATA $data[0];
close (DATA);
#入力完了Web表示
print "Content-type:text/html\n\n";
print "cnt=$data[0]";
#PHPの場合
#count.txtを用意しておく
<?php
$filename="./count.dat";
$cntAry=file($filename);
$cnt=$cntAry[0];
$cnt++;
WFILE($filename,$cnt);
print "cnt=".$cnt;
function WFILE($file,$writeTXT){
$fp=fopen($file,"w");#書き込み fpはfileの先頭
if($fp){
flock($fp,LOCK_EX);
fwrite($fp,$writeTXT);
flock($fp,LOCK_UN);#ファイルを閉じる前に実行。
fclose($fp);
}
#chmod($file,0766);
}
?>
TOPへ
外部と交信/JavaScript呼び出し
getURL("javascript:OPENSPOT('"+obj._name+"',"+obj._x+","+obj._y+")");getURL("javascript:SETHELP('縮小表示します。')");
TOPへ
外部と交信/値を渡す。
myMovie.swf?point=5
とかで呼び出す。
htmlに貼ったFlashに値を渡すには
<param name="movie" value="map.swf?point=369:377:378:386">
bufp=String(_root.point);
_root.point="";
if(bufp.length>0){
telPoint(bufp);
_global.mode=1;
}
cash=String(_root.course);
_root.course="";
if(cash.length>0){
traceCourse(cash);
_global.mode=1;
}
TOPへ
配列/連想配列
var myAry = new Array();
myAry[ "name" ] = "takeuchi";
myAry[ "Fname" ] = "toru";
myAry.money = 100;
TOPへ