2009年05月25日


ファイルダウンロード貼り付け


一番上の入力フィールドにダウンロードするファイルの URL を入力します。
2番目と3番目は自分のサイトにファイルがある場合に変更します。

swf と ダウンロードファイルが別ドメインの場合は、ダウンロードファイル側に
crossdomain.xml を置いて、ダウンロードを許可する必要があります 

※ iframe を使用すると、.js ファイルは必要ありません。

タイプ   実装  



posted by night wálker at 00:06 | ツール

2009年05月13日


Flex : ファイルダウンロード用コンテンツ




↓レッドタイプ
多少の技術的な知識は必要ですが、swf でファイルをダウンロード
させる場合は、ボタンクリック後にすぐファイル保存ダイアログを
表示させる事ができます。

また、サーバの mime 設定に左右されずにテキストファイル等も
ダウンロードが可能です。

設置に Google 経由の swfobject を使用していますので、Google
側で問題が発生した場合は、swf が表示されない可能性がありますが、
通常のリンクも同時に設置しているので、問題はありません
1) ダウンロード(含ソースコード)して fileDownload.js と fileDownload.swf を自分のサイトに設置
2) 以下のように記述
<script 
	charset="shift_jis"
	type="text/javascript"
	src="http://homepage2.nifty.com/lightbox/fileDownload.js"></script>
<script
	type="text/javascript"
	src="http://www.google.com/jsapi"
	charset="utf-8"></script>
<script type="text/javascript">
google.load("swfobject", "2.1"); 
createFileDownloadArea("flashcontent");
</script>
<script type="text/javascript">
createFileDownload(
"http://winofsql.jp/download/fileDownload_090513.lzh",
"http://homepage2.nifty.com/lightbox/fileDownload.swf",
"",125,90,"9.0.0");
</script>

http://homepage2.nifty.com/lightbox/ のファイルをそのまま
使っていただいても結構ですが、かなり重いと思います。

createFileDownload の引数は以下のような仕様です。
1) ダウンロードするファイルのURL
2) swf のパス( ページから参照できれば良いので相対パスでも可 )
3) "" は白タイプ、 "red" とすると赤タイプ
4) 幅( 変更してもあまり意味ありません )
5) 高さ( 変更してもあまり意味ありません )
6) 最低必要なバージョン指定( swfobject への引数です )

ダウンロードする URL が、ページを表示しているドメインと異なる場合は、
その URL のトップに crossdomain.xml を置いて、ページを表示している
ドメインからのファイルアクセスを許可する必要があります




最後に、IFRAME を使うともっと簡単に利用可能です。
( この場合URLのエンコードを手動で行う必要があります )
<IFRAME
	src="http://winofsql.jp/fileDownload.swf?target=http%3A%2F%2Fwinofsql.jp%2Fdownload%2FfileDownload_090513.lzh&type=red"
	frameborder="no"
	scrolling="no"
	width="125"
	height="90"
></IFRAME>

posted by night wálker at 16:13 | ツール

2009年05月11日


SWFObject 2.1 利用方法


ダウンロード
オリジナルの英文のサンプル等
<div id="targetArea"></div>
<script type="text/javascript">
var flashvars = {};
flashvars.a = 34.688324;
flashvars.b = 135.498463;
flashvars.c = 19;
var params = {allowScriptAccess:"always",bgcolor:"#ffffff"};
var attributes = {
  id: "myDynamicContent",
  name: "myDynamicContent"
};
swfobject.embedSWF(
	"http://mydoamin/my.swf?reload="+(new Date()).getTime(),
	"targetArea", 
	"600",
	"500",
	"9.0.0",
	"",
	flashvars,
	params,
	attributes
);
</script>

?reload="+(new Date()).getTime() をURLに付加しているのは
キャッシュで変更結果が反映されないのを避ける為で、開発中に使います。

flashvars,params,attributes はいずれも配列で、指定方法がそれぞれ
違いますが、結果は同じです。
flashvars は、アプリケーションに対する引数で、本来は params のうちの一つ。
params は、flash に対する引数。
attributes は、HTML 上のオブジェクトとしての引数(属性)です。

6番目の引数は省略していますが、Express Install に使用
する swf を指定するようです( 未検証 )

Google 経由で使用する場合は、swfobject.js を使わずに、以下
のように記述します
<script
	src="http://www.google.com/jsapi"
	type="text/javascript"
	charset="utf-8"
></script>
<script type="text/javascript">
google.load("swfobject", "2.1"); 
</script>



■ 関連する記事
ブログパーツとしての Flex で作った Google MAP
posted by night wálker at 21:08 | Flex3

2009年02月18日


Flex内部からのブラウザ判定


特にブラウザが表示している HTML 内に JavaScript の function を用意する必要はありません。
var str:String = ExternalInterface.call("window.navigator.userAgent.toLowerCase");
if (str.indexOf("msie") > -1) {
	Alert.show("IE");
}
else if (str.indexOf("firefox") > -1) {
	Alert.show("Firefox");
}
else if (str.indexOf("opera") > -1) {
	Alert.show("Opera");
}
else if (str.indexOf("netscape") > -1) {
	Alert.show("Netscape");
}
else if (str.indexOf("chrome") > -1) {
	Alert.show("Google Chrome");
}
else {
	Alert.show("Unknown");
}



ただ、この場合ブラウザからの戻り値を取得するので、
IE では必ず OBJECT 要素が必ず必要でかつ id 属性が必要です。

また、こちらのような問題 も注意して下さい。

posted by night wálker at 15:50 | Flex3

クリップボード用 FlashButton(Flex) の使用方法


以前作った汎用型の FlashButton( クリップボードにデータを貼り付ける ) の使い方をまとめました。

まず、ダウンロードはこちらから で、
解凍した中から、flashButton.js と flashButton.swf を取り出して、
自分のサイトにアップロードします。
とりあえず、ここでは 「
winofsql.jp/flex3/flashButton/」にある事として話を進めます
( 実際にありますけど )

まず、以下のスクリプトタグをページの最初に表示するソースコードより前に一度だけ記述します
( ページの先頭の任意の場所で良いです )

<SCRIPT 
	type="text/javascript" 
	src="http://winofsql.jp/flex3/flashButton/flashButton.js"></SCRIPT>
次に、ソースコードを PRE タグで記述する必要が
あるのですが、http://winofsql.jp/php/cnvtext/frame.htm で
HTML上で正しく表示されるように「送信1」ボタンで変換しておいて
から、PRE タグで挟み、PRE に id を付加してユニークな id を
付けます。( 英字で始めて、日付や時分秒を付加してユニークにするといいと思います )

<PRE id="id123456">
ソースコード
</PRE>
そして、FlashButton を追加する場合は好きな場所に以下の記述を行い
ます。その場合注意するのは、PRE で指定した id を引数として渡すというところです。

<SCRIPT type="text/javascript">
createFlashButton("id123456","http://winofsql.jp/flex3/flashButton");
</SCRIPT>


以下は実際に実装しています。


↓flashButton.js
function orgCodeInit(id) {
	var str = id.replace(/_object/g,'')
		.replace(/_name/g,'');

	try {
		str = fbtnImage(str);
	}
	catch( e ) {
		str = "";
	}
	return str;
}
function orgCodeGetForClipcopy(id,shiftFlg,ctrlFlg) {
	var str = id.replace(/_object/g,'')
		.replace(/_name/g,'');
	var codeWorkString = "";
	if (window.navigator.userAgent.toLowerCase().indexOf("msie") > -1) {
		codeWorkString = document.getElementById(str).innerText;
	}
	else {
		codeWorkString = document.getElementById(str).innerHTML;
		codeWorkString = codeWorkString.replace(/&lt;/g,'<')
				.replace(/&gt;/g,'>')
				.replace(/&amp;/g,'&');
	}
	return( codeWorkString );
}
function orgCodeClipcopyEnd() {
	var str = "\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9"+
		"\u306b\u30b3\u30d4\u30fc\u3055\u308c\u307e"+
		"\u3057\u305f\u3000\u3000\u3000";
	alert(str);
}
function createFlashButton(id,path) {
	var paramCount = arguments.length;
	var width = 0;
	var height = 0;
	var bcolor = 0;
	var wmode = false;
	if ( paramCount > 2 ) {
		width = arguments[2]
	}
	if ( paramCount > 3 ) {
		height = arguments[3]
	}
	if ( paramCount > 4 ) {
		wmode = arguments[4]
	}
	if ( paramCount > 5 ) {
		bcolor = arguments[5]
	}

	try {
		fbtnImage("");
	}
	catch( e ) {
		width = 0;
		height = 0;
	}

var str="";
str+="<object \n";
str+=" id=\""+id+"_object\" \n";
str+=" classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" \n";
if ( width == 0 ) {
	str+=" width=\"85\" \n";
}
else {
	str+=" width=\""+width+"\" \n";
}
if ( height == 0 ) {
	str+=" height=\"17\" \n";
}
else {
	str+=" height=\""+height+"\" \n";
}

str+="> \n";
str+="	<param name=\"movie\" value=\""+path+"/flashButton.swf\" /> \n";
str+="	<param name=\"allowScriptAccess\" value=\"always\" /> \n";

if ( bcolor == 0 ) {
	str+="	<param name=\"bgcolor\" value=\"#FFFFFF\" /> \n";
}
else {
	str+="	<param name=\"bgcolor\" value=\""+bcolor+"\" /> \n";
}

if ( wmode ) {
	str+="	<param name=\"wmode\" value=\"transparent\" /> \n";
}


str+="	<embed \n";
str+="	 name=\""+id+"_name\" \n";
str+="	 src=\""+path+"/flashButton.swf\" \n";
str+="	 allowscriptaccess=\"always\" \n";
if ( width == 0 ) {
	str+="	 width=\"85\" \n";
}
else {
	str+="	 width=\""+width+"\" \n";
}
if ( height == 0 ) {
	str+="	 height=\"17\" \n";
}
else {
	str+="	 height=\""+height+"\" \n";
}
if ( bcolor == 0 ) {
	str+="	 bgcolor=\"#FFFFFF\" \n";
}
else {
	str+="	 bgcolor=\""+bcolor+"\" \n";
}

if ( wmode ) {
	str+="	 wmode=\"transparent\" \n";
}

str+="	> \n";
str+="	</embed> \n";
str+="</object> \n";
document.write( str );

}





posted by night wálker at 15:11 | Flash ボタン
記事リスト