PUBLICROOTS | mtFlash http://www.publicroots.com/fmt/ ja 2010-03-07T17:33:09+09:00 AS3 : Google Maps API http://www.publicroots.com/fmt/archives/000293.html FlashとGoogleMapの連携って意外に簡単。

まず、SDKをダウンロードしてからAPIキーを取得する。
http://code.google.com/apis/maps/documentation/flash/
http://code.google.com/apis/maps/signup.html

swcファイル(map_1_8a.swc)をComponentsに格納します。
あとはクラスをインポートしていくつかnewするだけで地図が表示できます。

import com.google.maps.LatLng;
import com.google.maps.Map;
import com.google.maps.MapEvent;
import com.google.maps.MapType;

var map:Map = new Map();
map.key = "your_api_key";
map.setSize(new Point(stage.stageWidth, stage.stageHeight);
map.addEventListener(MapEvent.MAP_READY, onMapReady);
this.addChild(map);

function onMapReady(event:Event):void {
map.setCenter(new LatLng(40.736072,-73.992062), 14, MapType.NORMAL_MAP_TYPE);
}

]]>
AS3 publicroots 2010-03-07T17:33:09+09:00
Frocessing http://www.publicroots.com/fmt/archives/000292.html Processingライクなドロー系AS3ライブラリです。
あくまでライクだそうですが、遊んでみると結構面白いです。

Spark projectよりダウンロードできます。
http://www.libspark.org/wiki/nutsu/Frocessing

開発者 nutsu さん
http://nutsu.com/

サンプルサイト
http://hokori.net/2009/08/13/frocessing/
http://blog.alt-scape.com/archives/138

Processing
電子アートとビジュアルデザインのためのプログラミング言語
http://processing.org/

]]>
Frocessing publicroots 2010-01-20T17:17:14+09:00
AS3 : SoundMixer.computeSpectrum http://www.publicroots.com/fmt/archives/000291.html SoundMixer.computeSpectrumは結構問題あるようですが、
とりあえず波形を表示するサンプルを作ってみました。


package {
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.media.*;
import flash.net.*;
import flash.utils.*;

public class Main extends Sprite {
private var WaveH:int = stage.stageHeight/2;
//チャンネル毎のByteArray取得範囲
private const chanlength:int = 550;
private var _byteArray:ByteArray = new ByteArray();

//サウンドの再生・毎フレームイベント設定
public function Main() {
var sound:Sound = new Sound();
var soundurl:URLRequest = new URLRequest("loop.mp3");
sound.load(soundurl);

var channel:SoundChannel;
channel = sound.play(0,100);
addEventListener( Event.ENTER_FRAME, enterFrameHandler );
//channel.addEventListener( Event.SOUND_COMPLETE, PlayCompleteHandler );
}

//毎フレームサウンドの波形取得・線描画
private function enterFrameHandler( e:Event ):void {
//_byteArrayにサウンド波形の値を設定
SoundMixer.computeSpectrum( _byteArray, false, 0 );
var g:Graphics = graphics;
g.clear();

g.lineStyle( 0, 0x000000 );
g.beginFill (0xFF0000, 1.0); // 面のスタイル設定

/* 円で表示する場合
var n:Number = 0;
n = ( _byteArray.readFloat() * WaveH );
g.drawCircle(275,200,(WaveH - n));
*/

/* 波形表示の場合*/
g.moveTo( 0, WaveH );
//左チャンネルだけ取得して描画
var n:Number = 0;
for ( var i:int = 0; i < chanlength; i++ ) {
n = ( _byteArray.readFloat() * WaveH );
g.lineTo( i, WaveH - n );
}
}
private function PlayCompleteHandler( e:Event ):void {
removeEventListener( Event.ENTER_FRAME, enterFrameHandler );
}
}
}


]]>
AS3 publicroots 2010-01-20T00:35:28+09:00
AS3 : Google Analytics http://www.publicroots.com/fmt/archives/000283.html AS2の時と変更してるんですね。

google codeからgaforflashをダウンロードする。

Macの場合は、
Macintosh HD/Applications/Adobe Flash CS3/Configuration/Components
にダウンロードしたgaforflash/libフォルダーを"Google"とか適当な名前付けてコピーする。
Winの場合は、
C:¥Program Files¥Adobe¥ Adobe Flash CS3¥language¥Configuration¥Components

コンポーネントウィンドウの中からGoogle/analytics.swcをflaファイルの適当なレイヤーに配置、
名前はtrackerとかになってるからそのままでOK。パラメータのaccountに"UA-XXXXXXX-X"を入れる。

ソースは


import com.google.analytics.AnalyticsTracker;
import com.google.analytics.GATracker;

//取得したいイベントの処理後に追加
tracker.trackPageview("/sample");

]]>
AS3 publicroots 2009-11-04T13:05:04+09:00
AS3 : ドロップシャドー http://www.publicroots.com/fmt/archives/000280.html import flash.filters.DropShadowFilter;

//dropShadow
private var dropShadow : DropShadowFilter;

//ドロップシャドー
dropShadow = new DropShadowFilter();
dropShadow.distance = 0;
dropShadow.blurX = 16;
dropShadow.blurY = 16;
dropShadow.alpha= 0.20;
sample_img.filters = [dropShadow];
]]>
AS3 publicroots 2009-10-14T22:45:57+09:00
AS3 : 背景テクスチャ http://www.publicroots.com/fmt/archives/000277.html 画像素材のリンゲージプロパティをBG_dotにしてから下記の設定OK。

private var detailSprite   	: Sprite;
private var _paternobj  : BitmapData;

//背景のテクスチャー設定
detailSprite = new Sprite();
_paternobj = new BG_dot(0, 0);

detailSprite.graphics.beginBitmapFill(_paternobj);
detailSprite.graphics.drawRect(0, 0, _detailthis.stage.stageWidth,
_detailthis.stage.stageWidth);
detailSprite.graphics.endFill();

//背景をaddする
_detailthis.addChild(detailSprite);
detailSprite.x = 0;
detailSprite.y = 0;
]]>
AS3 publicroots 2009-10-02T21:11:33+09:00
Twitter http://www.publicroots.com/fmt/archives/000274.html Twitterって最近また人気がでてきたの?
今やってる案件でクライントから「Twitterで何かできませんか?」って提案があったらしく、
いろいろ調べてみました。

参考になったサイト
Hogwarts Wizarding Class
http://www.harrypottertweet.com/
Billie Tweets - a Twitter tribute to Michael Jackson's "Billie Jean"
http://billietweets.com/
TwittEarth
http://www.twittearth.com/

ん..... 正直どれもうまく落とし込まれているような気はしないですが。

これの方が実用的でかなり活用できていると思います。難しい....
福助株式会社
http://twitter.com/fukuske
フジヤカメラ
http://twitter.com/fujiyacamera

やっぱりTwitterはこういう使い方が正しいと思います。
それかちょっとしたバズぐらいにしかならないですね。

]]>
news publicroots 2009-09-03T04:38:18+09:00
APMT5 CONFERENCE http://www.publicroots.com/fmt/archives/000270.html apmtweek09_banner320b

行きます!

]]>
news publicroots 2009-08-11T02:32:24+09:00
JSでアドレスをSWFに渡す方法 http://www.publicroots.com/fmt/archives/000255.html <script type="text/javascript">
var siteurl = location.href.substring(0,location.href.indexOf(location.pathname));
var so = new SWFObject("sample.swf", "sample","100%", "00%", "9");
so.addParam("menu", "false");
so.addParam("quality", "best");
so.addParam("scale", "noScale");
so.addParam("salign", "TL");
so.addVariable("sample", siteurl);
so.write("flashcontent");
</script>

Flash側


var thisloader = _sthis.parent.parent;
var flashVars:Object = thisloader.loaderInfo.parameters;
_site_pass = flashVars["siteurl"];
trace("_site_pass = "+_site_pass);//http://www.sample.com

]]>
news publicroots 2009-06-11T00:07:17+09:00
AS3 : swfのあるドメインを取得する http://www.publicroots.com/fmt/archives/000252.html AS2ではswfのあるアドレスを
_root._url
で取得できたんですがAS3ではできません。

でいろいろ調べた結果、ドメインを取得する方法がありました。


import flash.net.LocalConnection;

//swfを置いているドメイン名(サブドメイン含む)
public static function get currentDomain():String{
var url_string:String = new LocalConnection( ).domain;
trace(url_string);//出力結果 www.sample.com
}

]]>
AS3 publicroots 2009-06-02T02:22:39+09:00
ターミナルでデバック表示 http://www.publicroots.com/fmt/archives/000250.html 昔 FirefoxでFlashTracerていうのがあったけど、
バージョンアップしてから見れなくなったのでターミナルで見れるようにしました。

Flash Player をDebugger Versionsにする
http://www.adobe.com/support/flashplayer/downloads.html

それからターミナルを立ち上げてデバッグを表示しているファイルにアクセウスする。
tail -f ~/Library/Preferences/Macromedia/"Flash Player"/Logs/flashlog.txt

かなり便利です。

]]>
news publicroots 2009-05-26T17:45:40+09:00
AS3 : PHPとの通信方法 http://www.publicroots.com/fmt/archives/000247.html import flash.events.*;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
import flash.net.URLRequestMethod;
import flash.net.URLVariables;

//sample1, sample2, sample3の値をPOSTする
var variables:URLVariables = new URLVariables();
variables.sample1 = "sample1";
variables.sample2 = "sample2";
variables.sample3 = "sample3";

var urlRequest:URLRequest = new URLRequest(sample_php_url);
urlRequest.method = URLRequestMethod.POST;
urlRequest.data = variables;
var urlLoader:URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
urlLoader.addEventListener(Event.COMPLETE, SampleComplete);
urlLoader.load(urlRequest);

public function SampleComplete(eventObject:Event):void
{
送信完了後のアクション
}

]]>
AS3 publicroots 2009-05-11T17:39:54+09:00
HTTPS接続(SSL)する際のcrossdomain.xmlの設定 http://www.publicroots.com/fmt/archives/000246.html <?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "/xml/dtds/cross-domain-policy.dtd">
<!-- Policy file for mysite.com -->
<cross-domain-policy>
<allow-access-from domain="sample.com" secure="false" />
</cross-domain-policy>

HTTP SWFファイルとHTTPS SWFファイルの通信を許可するようにするには

secure="false"にすればOKです。

デフォルト(何も書かない状態)はsecure="true"なので、

HTTPS接続(SSL)する場合はsecure="false"にすればOKです。

つまりswfの別ドメイン間のやり取りに加えて、SSL通信が必要な場合はこうすれはいいみたいですね。

忘れそうなのでメモ。

参考サイトはこちら
http://www.adobe.com/jp/devnet/flashplayer/articles/secure_swf_apps_05.html
http://blog.img8.com/archives/2006/12/002751.html


その他の方法では、codebaseと、embedタグ内のプラグイン取得への箇所のプロトコル宣言をhttpsにしておくだけでOKだそうです。


<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"

codebase="https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0"

width="**" height="**" id="**" align="middle">

<embed src="huga.swf" quality="high" bgcolor="#ffffff" width="**" height="**" name="**"

align="middle" allowScriptAccess="sameDomain" allowFullScreen="false"

type="application/x-shockwave-flash" pluginspage="https://www.adobe.com/go/getflashplayer" />
</object>

参考サイトはこちら
http://glasses-factory.net/2008/11/crossdomain-ssl.html

]]>
news publicroots 2009-04-28T22:52:59+09:00
AS3 : Loaderオブジェクトでロードしたswfの変数を参照する http://www.publicroots.com/fmt/archives/000245.html //loader
public var ldrobj : Loader;
var urImage : URLRequest;
var info : LoaderInfo;
var contents_url : String;//コンテンツアドレス

var subcontents:*;

ldrobj = new Loader();
urImage = new URLRequest(contents_url);
ldrobj.load(urImage);
this.addChild(ldrobj);

// ローダーインフォを取得
info = ldrobj.contentLoaderInfo;
info.addEventListener (Event.OPEN,LoaderInfoOpenFunc);
info.addEventListener(ProgressEvent.PROGRESS, LoadProgress);
info.addEventListener(Event.COMPLETE, loaded_INFO);

//-----[読み込み開始イベントの処理]
public function LoaderInfoOpenFunc(event:Event){
trace ("読み込みを開始した");
}
//-----[読み込み中イベントの処理]
public function LoadProgress(event:ProgressEvent):void
{
trace("progress = " + Math.round((event.bytesLoaded*100)/(event.bytesTotal)));
}
//-----[読み込み完了イベントの処理]
public function loaded_INFO(event:Event):void
{
subcontents = ldrobj.content;
subcontents._intbtn();//ロード後に実行したい関数 : _intbtn
〜演出〜
Tweener.addTween(ldrobj, {alpha:1, time:1, transition:"easeInExpo", delay:1});

info.removeEventListener (Event.OPEN,LoaderInfoOpenFunc);
info.removeEventListener(ProgressEvent.PROGRESS, LoadProgress);
info.removeEventListener(Event.COMPLETE, loaded_INFO);
}


subcontents = ldrobj.content;
subcontents._intbtn();//ロード後に実行したい関数 : _intbtn()

この部分。
subcontentsを使ってアクセスすればOKです。

]]>
AS3 publicroots 2009-04-23T21:17:47+09:00
AS3 : HTMLからSWFにパラメータを受け渡す方法 http://www.publicroots.com/fmt/archives/000244.html idという名のパラメータを受け渡しする場合
HTML側

<script type="text/javascript" src="swfobject.js"></script>



<div id="flashcontent">

〜代替テキスト〜

</div>

<script type="text/javascript">

var so = new SWFObject("sample.swf", "swfl", "550", "400", "8", "#000000");

so.addVariable("id", getQueryParamValue("id"));

so.write("flashcontent");

</script>



fla側


var tmpParam_obj:Object;

var id_number:String;



tmpParam_obj = loaderInfo.parameters;

id_number = String(tmpParam_obj["id"]);

trace("id_number = "+id_number);

loaderInfo.parametersに格納されるようです。

]]>
AS3 publicroots 2009-04-22T20:50:10+09:00