忍者ブログ

painkiller_blog

仕事でwebのお仕事。プライベートで油絵描いてます。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

flashPlayer10にてはまる

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を書き出す方法のものはまだ検証してませんが...

PR

AS2でのクラスの便利さ

いまさらながらクラス化の便利さが分かりました。
例えばムービークリップを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

仕事でやって躓いたのでここにメモしとこ。
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);
}

レイヤーに読み込み用シンボルとマスク用シンボルを配置しておく。
マスクアニメーションはマスクシンボルのタイムラインを使ってやる。




ふぅ。ともあれ、なんとかクリア





Copyright © painkiller_blog : All rights reserved

TemplateDesign by KARMA7

忍者ブログ [PR]

管理人限定

カレンダー

03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

最新CM

[10/08 イズカワタカノブ]

最新TB

ブログ内検索

アクセス解析

ブログを評価する「ブログレーダー」