ゼロと無限の間に

フリーでオープンソースなJavaScriptとかPHPとか。

ユーザ用ツール

サイト用ツール


サイドバー

何かありましたら、メールで連絡いただくか、ブログのどこかにコメント入れてくださいね ^_^

Menu

ゼロと無限の間に

はじめに

作った主なサイト

作った主な便利ツール(無料)

ログ (Blog)

javascript:flush-flash

文書の過去の版を表示しています。


Flashを動的に表示してアクティブ化する - FlushFlash

object/embedタグで表示しただけでは、クリックしないとアクティブにならないFlashを、動的に描き出すことにより表示と同時にアクティブ化するJavaScript。

それならSWFObjectでいいじゃないかとも思ったけどちょっとオーバースペック?三輪車には三輪車の車輪を。

使い方の例

その場に描き出す場合

var flush = new FlushFlash("/path/to/swf", 400, 300);
flush.write();

idを指定してそこに埋め込む場合

var flush = new FlushFlash("/path/to/swf", 400, 300, {bgcolor: "#ffffff"}); //最後のパラメータでparamを追加できる
flush.setTransparent(); //いくつかのparamは関数呼び出しでセットできる
flush.into("element-id"); //普通は空のdiv要素を用意してそのidを指定する

ソースコード

/**
 *    コンストラクタ
 *    @param    String    path       swfのパス
 *    @param    Number    width      幅
 *    @param    Number    height     高さ
 *    @param    Object    options    (省略可) param要素として指定する値
 */
FlushFlash = function(path, width, height, options) {
    this.path = path;
    this.w = width;
    this.h = height;
    this.params = options || {};
    this.params["movie"] = path;
}
/**
 *    透過にする (※透過にするとテキストボックス等でIMEが使えなくなるので注意)
 */
FlushFlash.prototype.setTransparent = function() {
    this.params["wmode"] = "transparent";
}
/**
 *    背景色を指定する (#ffffff形式で指定する。#fffは不可)
 *    @param    String    color
 */
FlushFlash.prototype.setBgColor = function(color) {
    this.params["bgcolor"] = color;
}
/**
 *    外部ドメインにアクセスできるようにする
 */
FlushFlash.prototype.allowAccess = function() {
    this.params["allowScriptAccess"] = "always";
}
/**
 *    FlashVarsを渡す
 *    @param    String    vars
 */
FlushFlash.prototype.setFlashVars = function(vars) {
    this.params["FlashVars"] = vars;
}
/**
 *    object要素を生成する
 *    @return    string    object要素
 */
FlushFlash.prototype.build = function() {
    var params = this.params;
    var o = "";
    o += '<object data="' + this.path + '" width="' + this.w + '" height="' + this.h + '"';
    o += ' type="application/x-shockwave-flash">';
    for (var i in params) {
        o += '<param name="' + i + '" value="' + params[i] + '" />';
    }
    o += '</object>';
    return o;
}
/**
 *    その場にswfを描き出す
 */
FlushFlash.prototype.write = function() {
    document.write(this.build());
}
/**
 *    要素の中にswfを描き出す
 *    @param    String    elementId
 */
FlushFlash.prototype.into = function(elementId) {
    document.getElementById(elementId).innerHTML = this.build();
}
javascript/flush-flash.1204207051.txt.gz · 最終更新: 2008/02/28 22:57 by dgbadmin