電子書籍の厳選無料作品が豊富!

調べて見たところ、知らぬ間に
マイクロソフト社が特許対策とかの都合上、
ブラウザ閲覧時におけるFLASH動画自動再生を制御するべく
オブジェクト周りを縁取りして
「このコントロールをアクティブ化・・」と表示されるようになっています。
別HPで、その解除方法を調べたのですが
---------------下記文献------------------
HTMLファイルには、Flashファイルを配置したい場所に、次の1行を書きます。
<script type="text/JavaScript" src="mifuru.js"></script>


mifuru.jsというファイルを作成します。
メモ帳で以下の文を書いて、ファイル名を mifuru.js とし、HTMLと同じ階層にFlashファイルと共にアップします。
document.open();
document.writeln('<embed src="test.swf" width="109" height="107" type="application/x-shockwave-flash"/>');
document.close();
拡張子を .js にするのを忘れないでください。
拡張子を表示しない設定の場合、”mifuru.js.txt”になりやすいので注意が必要です。

もちろん、embed src= のところにはFlashファイルの名前を、width や height にはタテ・ヨコのサイズ(ピクセル)を、その素材に合わせて変更します。
その他に、背景を透明にする"wmode"の値を transparent にして書き加えるなど、パラメータを付け加える事も可能です。


--------------------------------------------------------------------------------

この方法で、FLASHが自動再生できるようになったのですが
FLASH自体の配置場所って指定できるのでしょうか。
(文献にもあるように背景処理ができるとか)

この手の詳しい資料を探しています。
(できればドリームウィーバーでビジュアル操作したい)
宜しくお願いします。

A 回答 (2件)

おや,どうも...。


ふと目に付いたご質問を開いてみると,irukacyan 。
思いも寄らない所で遭遇してしまいましたね。


> 調べて見たところ、知らぬ間に

ええ,去年の4月ごろからボチボチと枠が付いてしまうようになりました。
書いていらっしゃる JSファイル についてはよくわかりませんが,

> Flashファイルを配置したい場所に、次の1行を書きます。

なのですから,
JSファイル の中身と,FLASH自体の配置場所は全く関係しませんよ。

普通のように Dreamweaver で Flash 入りのページを作成して,
その Flash を貼り付けた部分のタグを JS に変えるだけのことです。
ちなみに,Dreamweaver 8 でしたら,
その操作も自動でしてくれるので,
することは,ほとんど何にも変わらないと思います。

「Dreamweaver 8.0.2 アップデータ」 2006.5.10
http://www.adobe.com/jp/support/dreamweaver/down …


ごちゃごちゃと書かれた詳細はここに書かれていますね↓。

「アクティブコンテンツのアップデートに関する記事」 2006年4月13日
http://www.adobe.com/jp/devnet/activecontent/art …


「Dreamweaver 8.0.2 アップデータ」を使わずに手動でするとしても,
結局,
HTML 内に書いていた<OBJECT>や<EMBED>タグを 外部JSファイル内に移して,
JS の document.write によって再び HTML 内に還元してやれば良いと言うだけのことです。
手間ですがそれだけのことです。
ですから,

> 背景を透明にする"wmode"の値を transparent にして書き加えるなど、

をした場合も,
そのタグを 外部JS の document.write によってHTML内に表示すれば良いわけです。



また,Flash 8 にもアップデータが出ています。
「Flash Professional 8と Flash Basic 8 アクティブコンテンツアップデータ」
4/14/2006
http://www.adobe.com/jp/support/flash/downloads. …


このアップデータを Flash 8 に適用すると,
パブリッシュの設定で「HTML」をパブリッシュする際に,
自動でアクティブコンテンツに対応したタグが書き出されます。

次の例は,「名称未設定-1.fla」を背景透明設定にして,
パブリッシュ設定で「HTML」を「アクティブ コンテンツ HTTP」というものに設定してパブリッシュしたときの HTML ソースコードの全文です。

------------------------------------------------
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
<title>名称未設定-1</title>
<script language="javascript">AC_FL_RunContent = 0;</script>
<script src="AC_RunActiveContent.js" language="javascript"></script>
</head>
<body bgcolor="#ffffff">
<!--ムービーで使用されている URL-->
<!--ムービーで使用されているテキスト-->
<!-- saved from url=(0013)about:internet -->
<script language="javascript">
if (AC_FL_RunContent == 0) {
alert("このページでは \"AC_RunActiveContent.js\" が必要です。Flash の [コマンド] メニューから [アクティブ コンテンツ アップデートを適用] を実行して \"AC_RunActiveContent.js\" を HTML の出力フォルダにコピーします。");
} else {
AC_FL_RunContent(
'codebase', 'http://download.macromedia.com/pub/shockwave/cab …
'width', '550',
'height', '400',
'src', '名称未設定-1',
'quality', 'high',
'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
'align', 'middle',
'play', 'true',
'loop', 'true',
'scale', 'showall',
'wmode', 'transparent',
'devicefont', 'false',
'id', '名称未設定-1',
'bgcolor', '#ffffff',
'name', '名称未設定-1',
'menu', 'true',
'allowScriptAccess','sameDomain',
'movie', '名称未設定-1',
'salign', ''
); //end AC code
}
</script>
<noscript>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cab … width="550" height="400" id="名称未設定-1" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="名称未設定-1.swf" /><param name="quality" value="high" /><param name="wmode" value="transparent" /><param name="bgcolor" value="#ffffff" /><embed src="名称未設定-1.swf" quality="high" wmode="transparent" bgcolor="#ffffff" width="550" height="400" name="名称未設定-1" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</noscript>
</body>
</html>
---------------------------------------------


このままでは,
外部JSは用意されていませんから,
Flash 8 を開いたままの状態で,
「コマンド」→「アクティブ コンテンツ アップデートを適用」を選択し,
パブリッシュされた「HTML」を開くと,
自動的に外部JSである「AC_RunActiveContent.js」が生成され配置されます。

次のコードは,生成された「AC_RunActiveContent.js」の全文です。

---------------------------------------------
//v1.0
//Copyright 2006 Adobe Systems, Inc. All rights reserved.
function AC_AddExtension(src, ext)
{
if (src.indexOf('?') != -1)
return src.replace(/\?/, ext+'?');
else
return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs)
{
var str = '<object ';
for (var i in objAttrs)
str += i + '="' + objAttrs[i] + '" ';
str += '>';
for (var i in params)
str += '<param name="' + i + '" value="' + params[i] + '" /> ';
str += '<embed ';
for (var i in embedAttrs)
str += i + '="' + embedAttrs[i] + '" ';
str += ' ></embed></object>';

document.write(str);
}

function AC_FL_RunContent(){
var ret =
AC_GetArgs
( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
, "application/x-shockwave-flash"
);
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
var ret =
AC_GetArgs
( arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
, null
);
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
var ret = new Object();
ret.embedAttrs = new Object();
ret.params = new Object();
ret.objAttrs = new Object();
for (var i=0; i < args.length; i=i+2){
var currArg = args[i].toLowerCase();

switch (currArg){
case "classid":
break;
case "pluginspage":
ret.embedAttrs[args[i]] = args[i+1];
break;
case "src":
case "movie":
args[i+1] = AC_AddExtension(args[i+1], ext);
ret.embedAttrs["src"] = args[i+1];
ret.params[srcParamName] = args[i+1];
break;
case "onafterupdate":
case "onbeforeupdate":
case "onblur":
case "oncellchange":
case "onclick":
case "ondblClick":
case "ondrag":
case "ondragend":
case "ondragenter":
case "ondragleave":
case "ondragover":
case "ondrop":
case "onfinish":
case "onfocus":
case "onhelp":
case "onmousedown":
case "onmouseup":
case "onmouseover":
case "onmousemove":
case "onmouseout":
case "onkeypress":
case "onkeydown":
case "onkeyup":
case "onload":
case "onlosecapture":
case "onpropertychange":
case "onreadystatechange":
case "onrowsdelete":
case "onrowenter":
case "onrowexit":
case "onrowsinserted":
case "onstart":
case "onscroll":
case "onbeforeeditfocus":
case "onactivate":
case "onbeforedeactivate":
case "ondeactivate":
case "type":
case "codebase":
ret.objAttrs[args[i]] = args[i+1];
break;
case "width":
case "height":
case "align":
case "vspace":
case "hspace":
case "class":
case "title":
case "accesskey":
case "name":
case "id":
case "tabindex":
ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
break;
default:
ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
}
}
ret.objAttrs["classid"] = classid;
if (mimeType) ret.embedAttrs["type"] = mimeType;
return ret;
}
---------------------------------------------

あとは,普通通り,Dreamweaver なり,他の HTMLエディタで,HTMLを編集すれば良いだけです。


と言う具合なので,
Dreamweaver や Flash 作成の時点で,
JS 対応をさせておく方が多いと思うので,そんなに深刻になって研究されている方は少ないのではないかと思います。




=============================

★ 裏技(裏話)のような話ですが...。
 (実はこっちが本題だったりして。)

簡単と言っても,上のようにするのは,面倒でややこしいですよね。
なぜややこしくなるのかと言うと,
<OBJECT>や<EMBED>タグを 外部JSファイル内に持っていこうとするからややこしいのです。
実はもっともっと簡単に対処する方法はあります。

結局これはですね...。
OBJECTタグ内の
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
これ↑だけ!
この部分だけを 外部JS に移せば良いのですよ,実は実は。
他の部分は,今まで通り HTML 内に元からあっても良いのです。
しかし,
上の,classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" だけを外に出すのはタグの都合上難しいので,OBJECTタグ の1行目のみを外に出しさらに使いやすくする方法を書かれているサイトがあります。

良かったら参考にしてみてください↓。
理解ができたら,超簡単な操作で対処できます。

ActiveX コントロール アクティブ化の裏ワザ
http://qpon.quu.cc/activ/

この回答への補足

うひゃー!
色々書いて下さいまして、有難うございます。
しかしながら私のスキルでは絵に描いた餅同様、宝の持ち腐れで
勿体無い限りです><;

実は私、あまり記憶力の良い方ではありませんでして
プログラミング用語に興味を持ったのはいいものの
全てが中途半端で、しかもそれぞれの言語ルールとか
とても覚え切れなくてホームページを作成するべく「タグ」まで
到底手をつけれそうにありません。

なので、<BR>とかの文字を見ただけで
新しい言語ルールを覚えないといけない!って拒絶反応が出てしまい
パチスロの<BAR>かよ!!ってパソコンを叩く始末です。
(ちなみに、VBAとスプリクト程度しかかじってませんが・・・・しかも
すごーく浅くです;;)

今回の、ご指導に対して確実に理解できた事があります。

FLASH及びドリームウィーバは「8」を用意すれば解決するって事ですね?

残念ながら現時点では、FLASHもドリームウィーバーも「MX2004」です。
(買うか、タグを覚えるかって感じです。。)
なので、本来ホームページ上で配置するべくFLASHの位置の部分に
命令を貼付するだけと教えて頂きましても、肝心の
ホームページを支配している「タグ」が分からないので
ドコに命令を貼付すればいいのか・・・・・あぅぁう。。こんな奴が
ホームページ作っていいのでしょうか。。。ぅぅぅぅ
な、感じです。

これ以上の質問を繰り返していいものかどうか迷いましたが
折角ご回答いただいているのに、スルーでは申し訳なく
ワガママいぱーいの文章ですがレスさせて頂きました。

追伸:
sasakunさん、お久しぶりです。
明けましておめでとうございます。
本年も宜しくお願い申し上げます。
以前のゲームソースが壊れてしまったので現在サイトは閉鎖中です。;;
只今、前作を凌ぐゲームを作成中なので、是非また色々教えて下さい。
宜しくお願いします。

補足日時:2007/01/09 17:18
    • good
    • 0

http://f32.aaa.livedoor.jp/~azusa/index.php?p=41 …
本家adobeの対策ページ
http://www.adobe.com/jp/devnet/activecontent/
という所がFlashのJavascript書き出しの参考になるかと。

Flashの位置指定は、汎用ブロックレベル要素<div>でくくって、<div>に位置指定で普通に出来るのでは?
    • good
    • 0
この回答へのお礼

ありがとうございました。
私の悪い頭ではとても理解できない域であると判明しました><

こんな愚問で申し訳ございませんでした。


「汎用ブロックレベル要素<div>でくくって、<div>に位置指定で普通に出来るのでは?」

うううう・・・これすら理解できません。ごめんなさいです。

お礼日時:2007/01/09 17:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!