info

Home
[Flash+PHP]データをサーバへ送るには  @ FlashAS3 , FlashAS3 Tips 2008年7月6日

FlashからPHPへデータを送って返事をもらうという処理をするとき、
いつもコードを忘れてしまうのでメモ

Flash側
var variables=new URLVariables();
variables.step="送るデータ";

var urlreq=new URLRequest(php_path);
urlreq.method=URLRequestMethod.POST;
urlreq.data=variables;

var urlloader=new URLLoader(urlreq);
urlloader.dataFormat=URLLoaderDataFormat.VARIABLES;
urlloader.addEventListener(Event.COMPLETE, get_data_complete);
urlloader.load(urlreq);

function get_data_complete(e){
	var vars=new URLVariables(e.target.data);
	var str=vars["returndata"].toString();
	trace(str);
}
PHP側  パーミッションの設定を忘れずに
<?php
$step = $_POST['step'];
$ss="データ受け取りました";
echo "returndata=".$ss;
?>
[Flash+js+CSS]swfのサイズをダイナミックに変更する  @ FlashAS3 , FlashAS3 Tips 2008年7月6日

swfを貼り付けるときにサイズを指定しますが、
そのサイズをダイナミックに変更することに挑戦したら出来ました。
下記コードでFlashからjsをたたけば実行できます。
サンプルページ  サンプルページ2

html
<body bgcolor="#ffffff" onload="init_swfsize()">
<div id='flashcontent'></div>
<script type="text/javascript">
<!--
var installedVer=deconcept.SWFObjectUtil.getPlayerVersion();
var requiredver=9;
var requiredver2=45;
if(installedVer['major'] >=requiredver && installedVer['rev'] >=requiredver2
	|| installedVer['major'] >requiredver){
	var so = new SWFObject("swf/main.swf", "swf0", "100%", "100%", "9.0.45", "#000000");
	so.addParam("allowScriptAccess", "sameDomain");
	so.addParam("base", "swf/");
	so.write("flashcontent");
}else{
	//プラグインバージョンが低いときの処理
}
// -->
Javascript
function init_swfsize(){
	target_content=document.getElementById("flashcontent");
}
function set_swfsize_w(target_size){
	target_content.style.width=target_size;
}
function set_swfsize_h(target_size){
	target_content.style.height=target_size;
}
function set_swfsize(target_w, target_h){
	target_content.style.width=target_w;
	target_content.style.height=target_h;
}
CSS
#flashcontent{
	width:400px;
	height:400px;
}
[扇風機の都市伝説]  @ 気になった 2008年7月5日

扇風機の都市伝説(せんぷうきのとしでんせつ、Fan Death)とは、密閉された空間で扇風機をつけたまま眠ると窒息や低体温症などで死亡するという都市伝説。韓国では広く信じられており、日本でも古くから「扇風機をつけたまま寝ると死ぬ」という類似した話がある。

扇風機による死亡説の支持理由として、「汗をかき、扇風機の風によって盛んに蒸発が起きることで体温が奪われ低体温症に至るまたは体内の水分を奪われるため脱水症状に陥り血液がドロドロになって脳梗塞や心筋梗塞を起こす」というものがあげられている。また実例として韓国の新聞記事を引用するものがある。

一見すると科学的・論理的な説明であるが、実際には通風や空調が人体にもたらす影響についての医学面からの研究例は少なく体表温にわずかな低下をもたらすことや、風の強さが快適感に影響をあたえるといった程度のことしか分かっていない。
もともと過労状態であったり、老齢・病弱などの身体的な素因があったうえで、長時間扇風機やエアコンの風を受ける事で体温調節がうまく機能せず、結果として心臓マヒなどの症状がおこる可能性がある。この場合因果関係の従属性として「扇風機に当たったまま寝ると死ぬ」確率があるが、全称命題として「すべてのヒトは扇風機に当たったまま寝ると死ぬ」とするのは早まった一般化による誤謬である。

(Wikipediaより抜粋)
(扇風機の都市伝説)

[禅]  @ 気になった 2008年7月4日

全ての人が例外なく自分自身の内面に本来そなえている仏性を再発見するために、坐禅と呼ぶ禅定の修行を継続するなかで、仏教的真理に直に接する体験を経ることを手段とし、その経験に基づいて新たな価値観を開拓することを目指す。そうして得た悟りから連想される智慧を以て生滅の因縁を明らかにし、次いで因縁を滅ぼして苦しみの六道を解脱して涅槃に至り、その後に一切の衆生を導くことを目的とする。そのため師家が修行者に面と向かって臨機応変に指導する以外には、言葉を使わずに直に本性を指し示す道であるとされる。

主な修行形態として坐禅を採用するのは、達磨大師が坐禅の法を伝えたとする以外にも、古来より多くの諸仏が坐禅によって悟りを開いてきたからであるとされる。最近は、坐禅によってセロトニン神経が活性化され鍛えられることや、通常とは異なる独特なアルファ波が発生することが、精神的安定や心身の健康の一因であるという生理学教授もいる。ただし、自分も根本的には仏祖と同一であるという境地に到達した者には、一切の行動にことごとく仏道が含まれているという価値観が生じるため、坐禅に限らず念仏や読経も行うようになる。

禅宗においては、そもそも禅宗とはなにかといったメタな問いかけを嫌う傾向にある。そのような疑問の答えは、坐禅修行によって得た悟りを通して各々が自覚する事が最上であるとされ、もし人からこういうものだと教わりうる性質のものであるならば、それは既に意識が自身の内奥ではなく外へ向かっているため、内面の本性に立ち返るという禅宗の本意に反するとされるからである。もう一つの理由として、概念の固定化や分別を、わがままな解釈に基づく「とらわれ」「妄想」であるとして避けるためであり、坐禅修行によってとらわれを離れた自由な境地に達してのちに、そこから改めて分別することをとらわれなき分別として奨励するからである。

文字や言葉で教えることを避けて坐禅を勧める理由として、世尊拈華、迦葉微笑における以心伝心の故事を深く信奉しているという以外にも、自分の内奥が仏であることを忘れて経典や他人の中に仏を捜しまわることがかえって仏道成就の妨げになるからであると説く。沢庵和尚がたとえて言うには、「水のことを説明しても実際には濡れないし、火をうまく説明しても実際には熱くならない。本当の水、本物の火に直に触ってみなければはっきりと悟ることができないのと同様。食べ物を説明しても空腹がなおらないのと同様」で、実際に自身の内なる仏に覚醒する体験の重要性を説明し、その体験は言葉や文字を理解することでは得られない次元にあると説き、その次元には坐禅によって禅定の境地を高めていくことで到達できるとする。

(Wikipediaより抜粋)
()

[Flashからjpg]  @ FlashAS3 , Flash DEMO , FlashAS3 Tips 2008年7月2日

Flash上のBitmapで画像を生成してjpgで保存すること。AS2時代に一度作ったのですが
処理が重くて実用するのは難しいなぁと思っていました。しかし最近ふと思い出して
AS3でつくったら出来ました。
スクリーンショット1
flash2jpg

JPGEncoder.asがいります。
SVNリポジトリ:http://as3corelib.googlecode.com/svn/

function save_jpg(bmd){
	var jpg_enc=new JPGEncoder(50);
	var byte_array=jpg_enc.encode(bmd);
	url_request=new url_request(phpPath);
	url_loader=new url_loader();
	url_request.contentType="application/octet-stream";
	url_request.method=URLRequestMethod.POST;
	url_request.data=byte_array;
	url_loader.load(url_request);
	url_loader.addEventListener(Event.COMPLETE,when_save_done);
}
function when_save_done(e){
	file_name=url_loader.data;
	tex_in.text=file_name;
}

PHP側はこう

<?php
$t=time()+72000;
$fileName=date("Ymd")."_".date("His")."_".$t.".jpg";
$fp = fopen("../image/".$fileName, 'wb');
fwrite($fp, $GLOBALS['HTTP_RAW_POST_DATA']);
fclose($fp);
print $fileName;
?>
[APE]  @ FlashAS3 , APE 2008年6月29日

APE (Actionscript Physics Engine)
公式サイトより和訳
FlashおよびFlex用のフリーでオープンでAS3の物理エンジンです。APEはMIT LicenseでAlec Cove氏が作ったものです。
APE

[TextField]リンククリック→関数実行  @ FlashAS3 , FlashAS3 Tips 2008年6月26日

TextField.htmlTextにhtmlを入れてやればhtml表現ができます。
「href」でハイパーリンクを設定することが可能です。そしてハイパーリンクをクリックしたときに
関数を実行できることを知ったのでメモ サンプルページ

tex_in : テキストフィールドインスタンス名
tex_in.htmlText="<a href="event:">クリックすると関数実行</a>";
tex_in.addEventListener(TextEvent.LINK, when_text_release);
function when_text_release(e){
	trace("(・∀・∀・)あ、いま押した?");
}
[ジョージ・ソロス]  @ 気になった 2008年6月25日

ソロスはソロス・ファンド・マネージメントの設立者である。1970年、彼はジム・ロジャーズとともにソロスファンド(後のクォンタム・ファンド)を設立した。ファンドは10年間で3,365%のリターンを出してソロスの富の大部分を形成した。

1992年9月16日のポンド危機で、100億ドル以上のポンドの空売りを行なったことで、ソロスはすぐ名を挙げた。イングランド銀行が金利を欧州為替相場メカニズム(ERM) を採用している他の国と比較して引きあげること、またはその国の通貨の変動相場の金利を引き上げることに乗り気でなかったことから、ソロスは利益を得た。最終的にイングランド銀行は欧州為替相場メカニズムから通貨を回収することを強いられた。ポンドは価値を下げ、この過程でソロスは20億ドルと見積もられる利益を出した。ソロスは、イングランド銀行をつぶした男と呼ばれた。 タイムズ紙にて1992年10月26日月曜日:ソロスは以下のように答えている。「我々のブラックマンデーまでのトータルポジションはほぼ100億ドルの価値があった」「しかし、我々はそれ以上に売ることを決断した」。事実、Norman Lamontが英国通貨スターリングを買い支えるため、150億ドルを借りることを価値切り下げの直前に行ったとき、我々はどのくらい空売りすることになるかということを暗に示していたので、楽しんでいた。

1997年、アジア通貨危機の間、マレーシア首相マハティールはソロスがマレーシア通貨リンギットを下落させたことを戦犯と非難した。

(Wikipediaより抜粋)
(ジョージ・ソロス)

[SWFObject1.5]htmlへflashを貼り付ける  @ FlashAS3 , FlashAS3 Tips 2008年6月25日

すでに2.0もリリースされている便利なJavascriptですが2.0を使わず1.5を使っています。
理由は特に無いです。そして、使うときいつも書き方を忘れるのでメモ

<script language="JavaScript" type="text/javascript">
<!--
var installedVer=deconcept.SWFObjectUtil.getPlayerVersion();
var requiredver=9;
var requiredver2=45;

if(installedVer['major']==requiredver&&installedVer['rev']>=requiredver2
|| installedVer['major']>requiredver){
	var so=new SWFObject('swf/main.swf','main','1010','640','9.0.45.0','#ffffff');
	so.addParam('wmode','opaque');
	so.addParam('base','swf/');
	so.addParam('menu','false');
	so.write('flashcontent');
}else{
	プラグインのバージョンが低いときの処理
}
// -->
[Papervision3D]3Dオブジェクトにalphaプロパティを追加  @ FlashAS3 , Papervision3D 2008年6月25日

Papervision3DでFlashを制作しているとき、ふと気付いたのですが
3Dオブジェクトにalphaプロパティが無くて「透明→不透明」の演出が出来ないのです。
「MovieMaterial」でやることも出来ますが処理が重いのでNG
そこでPapervision3Dをちょこっといじってみました。いまのところ「BitmapMaterial」かつ「Plane」の
3Dオブジェクトだけつくりました。
下記のコードを追加すれば「alpha」プロパティが追加されて
不透明度を操作することが出来ます。しかも軽い!
ただ、BitmapDataのクローンを作成するので少しリソース食います
でかい画像をテクスチャにするときは使えないかもです。

ファイル名:Plane.as

public var cmf=new ColorMatrixFilter([1,0,0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]);
private var _alpha:Number=1;
public function reset_alpha(){
	cmf=new ColorMatrixFilter([1,0,0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, _alpha, 0]);
	this.material.texture.applyFilter(this.material.bmpd, this.material.bmpd.rect, new Point(0, 0), cmf);
}
public function set alpha(v:Number):void{
	if(!this.visible)return;
	_alpha=((v<0)?0:v);
	cmf=new ColorMatrixFilter([1,0,0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, _alpha, 0]);
	this.material.texture.applyFilter(this.material.bmpd, this.material.bmpd.rect, new Point(0, 0), cmf);
}
public function get alpha(){
	return _alpha;
}
public function dipose_bmpd(){
	this.material.bmpd.dispose();
}

ファイル名:BitmapMaterial.as

変数を宣言
public var bmpd:BitmapData;

コンストラクタの該当部分を下記のようにする
if( asset ){
	texture = asset;
	this.bmpd=asset.clone();
}