flashPlayer10をインストールするとflashが見れない現象があったのでメモ。
今回のケースはflashのスクリプトの中で
System.capabilities.versionを使ってバージョンが6以下なら新しいflashPlayerをインストールするようにアクションスクリプトを記述してたのが問題点でした。
--------------------------------------------------------------------
myVersion = System.capabilities.version;
Ver = int(substring(myVersion , 5, 1))+0.1*int(substring(myVersion , 7, 1))+0.001*int(substring(myVersion , 9, 2));
traceしてみるとmyVersion は「WIN 9,0,45,0」と出力します。
でVerはと言うと9.045と出るのですが、もしこれがflashPlayer10なら
「WIN 10,0,12,36」とmyVersionは最初の値は半角スペースの一文字目、つまり”1”をとるのでバージョンが1と認識されてしまう。
...でこんな感じに書き換えました。
myVersion = System.capabilities.version;
trace(myVersion );
if (myVersion.substr(4, 1) == "1") {
Ver = myVersion.substr(4, 2);
trace(intVer);
} else {
Ver = myVersion.substr(4, 1);
trace(intVer);
}
//出力結果
WIN 9,0,45,0
9
と、いうことでsubstr()で取得した文字列が”1”ならmyVersionの5、6文字目。それ以外なら5文字目だけ取得してプレーヤーのバージョンを判別せよとしました。
ひとまず今回はこれでOK。
javascriptでflashを書き出す方法のものはまだ検証してませんが...
いまさらながらクラス化の便利さが分かりました。
例えばムービークリップを20個ぐらい配置してそれに動きを付けるとしたらflashのアクションスクリプトの画面だけでやるとすんごく長くなる。
そこでasファイルを作ってそれに動きを付けてあげるとそれでOKなのが非常に便利
以下ソース
flaファイル1フレーム目
//配置する数
var count:Number = 30;
var i:Number=0;
//forで繰り返し
for (var i:Number = 0; i<count; i++) {
this.attachMovie("tip","tip"+i,i,{_x:0, _y:240});
}
tipを30個配置
・・・でそのチップの動きはasファイルに書く
Particle.as
import com.mosesSupposes.fuse.*;
import mx.transitions.easing.*;
class Particle extends MovieClip {
function Particle() {
com.mosesSupposes.fuse.ZigoEngine.register(com.mosesSupposes.fuse.Fuse, com.mosesSupposes.fuse.PennerEasing);
//ベジェのX軸
var conX:Number = Math.random()*50;
//ベジェのY軸
var conY:Number = Math.random()*50;
//アニメの時間
var Time:Number = Math.random()*2;
//終点の位置
//x座標
var End_px:Number = Math.random() * 960;
//y座標
var End_py:Number = Math.random() * 240;
var f:Fuse = new Fuse();
f=new com.mosesSupposes.fuse.Fuse([{target:this,_bezier_:{x:960,y:End_py,controlX:conX,controlY:conY},seconds:Time,ease:"easeOutQuad",delay:0.5},{target:this,alpha:0,seconds:1.9,ease:"easeInQuad",func:"deleteThis"}]);
f.start();
}
function deleteThis() {
removeMovieClip(this)
trace("消します");
}
}
一個一個のtipの動き等はFusekitを使ってパラメータはランダムにするためにMath.random()を使う。
これで動きをカスタマイズするときはそのasファイルを見るだけでOK。
いままで書いて長くなりすぎていたものがすっきりしました。
これからはこれでいこ。
仕事でやって躓いたのでここにメモしとこ。
loadMovieで読み込んだ画像にsetMaskすると何でか分かんないけどうまくいかない。
読み込んだ画像にマスクがかからないのよね。
で、、、
調べてみると、MovieClipLoaderを使ってaddListener使ってそんでもってonLoadInitを使う。
よーするに、読み込んでそれが読み込まれたならすぐにマスクで使うシンボルを設定しろということ。
こうすることであとはタイムラインでキーフレームを使ってアニメで使える。
スクリプトは
1フレーム目
var mcl:MovieClipLoader = new MovieClipLoader();
mcl.addListener(this);
mcl.loadClip(ここに読み込む画像のパス);
function onLoadInit(mc:MovieClip) {
load_mc0.setMask(mask_mc0);
}
レイヤーに読み込み用シンボルとマスク用シンボルを配置しておく。
マスクアニメーションはマスクシンボルのタイムラインを使ってやる。
ふぅ。ともあれ、なんとかクリア
まえにやっていたブログが消えてしまったのでここで新たに作成。
主に自分の活動(油絵、展覧会)等のレポートとかやっていこうと思います。
ではここから”Starting Over”