Archive for the ‘Flash’ Category

_root

木曜日, 4月 20th, 2006

 久々にFlashのActionScriptについてメモ。

 _rootに生成されたオブジェクトを参照したいときは

for (i in _root) {
	if (_root[i]._name.indexOf("xxxx") > -1 ) {
		_root[i].removeMovieClip();
	}
}

root[]配列で参照できることを知った。

 このときに変数名ではなくて、instanceofを使って比較をしたいと思った。比較対照となる空のクラスを作った。このクラスはMovieClipクラスを継承している。以下、yyyy.asというクラスファイルを作成する。
class yyyy extends MovieClip {}
ループをまわす前にこのクラスのオブジェクトを作り _root[] とinstanceofでインスタンス比較してみる。

var zzzz:yyyy;
for (i in _root) {
	if (_root[i] instanceof zzzz ) {
		_root[i].removeMovieClip();
	}
}

と書いてみたが、うまくいかない。これは要調査。
念のためにステージ上にオブジェクトを配置してそれを比較クラスとして宣言してみたが、ダメだった。

これ、県立図書館で見たので、借りてみよう。
FLASH OOP

これも読んでみたい。
Flash Math Creativity



Flash Video

日曜日, 7月 17th, 2005

 あるホームページで動画を配信する事になった。Windows Media PlayerやReal Player でストリーミング配信、というのが定石なのですが、

  • 個人的に、あれらのプレイヤが立ち上がるのが嫌いな事
  • このホームページでは Flashの コンテンツを扱うので、ついでに Flash Video で配信してみたい
  • という理由から、 Flash Video を採用してみました。

     職場のマシンや個人のマシンで、Media PlayerやReal PlayerがインストールされていなくてもFlash Playerはインストールされているのではないでしょうか?Flash Videoの一番の利点は、Flash Player7がインストールされていれば、他のメディアコンポーネントが不要なことだと思います。
    材料

  • Macromedia Flash MX 以降
  • 動画ファイル(*.asf, *.wmv, *.mpg, *.movなど)
  • 作り方
    1. 動画ファイルをFlashのライブラリに読み込みます。FlashVideo形式に書き出せる動画ファイルについては Flash TechNote ビデオの読み込み : ファイルとエンコーディングに関するガイドライン を参照。
    2. ライブラリに読み込んだ動画ファイルをFlash Video形式 (*.flv) に書き出します。
    3.ライブラリに空の「埋め込みビデオ」を作成して、ステージに配置します。インスタンス名を適当に付けます。そのた、Play, Stop, Pause/Play, Forward, Rewindボタンを作成しときます。
    4._rootのタイムラインの1コマ目にスクリプトを書いて、Flashムービーを呼び出します。

    // flvとして書き出したムービーの名前
    var currentMov:String = "testmovie.flv";
    
    // NetConnectionの設定
    var objNc:NetConnection = new NetConnection ();
    objNc.connect ( null );
    
    // NetStreamの設定
    var objNs:NetStream = new NetStream ( objNc );
    
    // FLVビデオの設定
    // ステージに配置した埋め込みビデオに"objVideo"と名前を付けておく
    objVideo.attachVideo ( objNs );
    
    //ムービーのバッファ処理
    objNs.setBufferTime (5);
    
    //playボタン
    plays.onRelease = function () {
            objNs.play (currentMov);
    }
    
    //puaseとplayボタン
    pauseplay.onRelease = function () {
            objNs.pause (currentMov);
    }
    
    //stopボタン
    stop.onRelease = function () {
            objNs.close (currentMov);
    }

    早送りは

    objNs.seek(objNs.time + 1);

    巻き戻しは

    objNs.seek(objNs.time - 1);

    を各ボタンが押されている間、繰り返すように記述します。

     巻き戻しに objNs.seek (objNs.time - 1); と書いたのですが、なにか、上手くいかずにSさんに相談しました。SさんはFlashの文法を知らないのに、「 -1 を -2 にして見れば?」という助言をくださいました。理由は、巻き戻しボタンが押されている間、objNs.time - 1 をループしても、 -1 した次の瞬間に +1 されているので、後ろに進まないのでは?ということでした。 -2 に修正したら、見事、巻き戻しもスムースになりました。解決時間、およそ1分。Sさんのすごさを再認識しました。そして、ヘコミました。

     書き出した flv ファイルも結構小さく圧縮できていて、レンタルサーバーのスペースも喰いません。サーバーに置いて再生してみたのですが、スムースに再生できてるようで、結構使えると思います。



    Flashのパラメータオプションについて

    金曜日, 7月 15th, 2005

    SWFの背景を透明にしたかったので、ついでにFlashのHTMLパラメータオプションについてメモ。

    背景を透明にするのは

    <param name="wmode" value="transparent"/>

    を付加。
    embedタグのプロパティにwmode=”transparent”を追加。

    参考

  • Flash TechNote > パラメータオプション
  • Kei Laboratory - FAQ(よくある質問)
  • (more…)



    Flash MX を使ってみたい

    土曜日, 9月 25th, 2004

     規模的に小さい仕事ですが、 Macromedia Flash で幼児用教材を開発する仕事をしてます。これがカナリのボリュームで、第一弾は完成したんですが、まだ次々と…。
     今まで Flash5 を使ってたんですが、Flash MX では ActionScript がカナリ変わったということで、使ってみたくなりました。相談したら Flash MX を買ってくださるということで、ちょっと下調べ。

    Macromedia Flash テクニカルノート一覧

    ActionScript1.0 から ActionScript2.0 へ

  • オブジェクト指向概念になったみたいです。
  •  Javaとあんまり変わらない?クラスが作れるようです。継承やインターフェイスなんかも。大文字と小文字も区別される。

  • 変数に型を指定できるようになりました。
  • 変数の宣言と初期化の例。以下で、数値n, 文字列s, Date型dの変数を宣言・初期化できます。
    var n:Number = 1;
    var s:String = “aaa”;
    var d:Date = new Date();
    以下が関数の記述
    function calc(x:Number, y:Number):void {
    …関数の中身
    }

  • クラス
  • ・コンストラクタ関数を持つことができる
    ・外部ファイルに記述しないといけない
    ・クラス名はファイル名と同じにしないといけない。
    インスタンスを作るにも Java や C++ と同じように宣言する。
    次の例はXXX というクラスを xxx というインスタンス名で作成。コンストラクタは引数を取らない。
    var xxx:XXX = new XXX();
    ・スーパークラスの継承は単一継承
    ・修飾子は public, private, static が使用可能

    Javaっぽい。Flash は画像とか、ムービーとかのインスタンスが絡んでくるし、時事系列でプログラムの流れを制御しないといけない所とかが難しいんですが…。