FlashAS3 Tips

[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のサイズをダイナミックに変更する

サンプルページ  サンプルページ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;
}

[Flashからjpg]

Flash上のBitmapで画像を生成してjpgで保存
スクリーンショット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;
?>

[TextField]リンククリック→関数実行

TextField.htmlTextにhtmlを入れてリンクをクリックしたときに
関数を実行できる サンプルページ

tex_in : テキストフィールドインスタンス名
tex_in.htmlText="<a href="event:">クリックすると関数実行</a>";
tex_in.addEventListener(TextEvent.LINK, when_text_release);
function when_text_release(e){
	trace("いま押した?");
}