Tweenerメモ。

LINEで送る
Pocket

前々回の記事で、
http://blog.hi-farm.net/article.php/article/1193150608

Papervision3D/Tweenerデビューしたということを書きましたが、Tweener、簡単に使えすぎるのでやみつきになりそうです。

メモとして基礎編。
ここからダウンロード。
http://code.google.com/p/tweener/

//— 
import flash.display.Sprite;

//— 宣言
import caurina.transitions.Tweener;

var sp:Sprite = new Sprite();
addChild( sp );

//—-設定
sp.graphics.beginFill( 0x000000, 1);
sp.graphics.drawRect( 0, 0, 100, 100);
sp.graphics.endFill();
sp.x = 0;
sp.y = 0;

//—– Tweener
Tweener.addTween( sp, { x: 100, time: 1, transition: “easeOutSine” } );

などとすれば、簡単に、
『現在地』から『x=100』まで移動できます。

イベントをつけたい場合は、
Tweener.addTween( sp, { x: 100, time: 1, transition: “easeOutSine” , onComplete: completeHandler } );

と書いて、

function completeHandler():void{
 //Tween終了後の処理
}

で簡単にTweenを制御できます。

注意点としては、Eventとかを渡さない、ということでしょうか。
ダウンロードすると、PDFやswfでTweenを説明したグラフがついてくるので、とっても便利!僕は机の前に貼っています。

今更ですが、忘れないために書いておきました。

2007年10月29日03:08

ExternalInterface.callの使い方を記録

LINEで送る
Pocket

Actionscript2でも使える、ExternalInterfaceはjavascriptとActionscriptの通信に使うことが多いと思いますが、
また久しぶりにExternalInterfaceを使う機会があったので、記録しておきます。

まず、ExternalInterfaceのメソッドとしては、
addCallBack、callがあるのですが、僕は単純に

呼び出す側 -> 呼び出される側
swf (actionscript) -> js (javascript) : ExternalInterface.call();
js (javascript) -> swf (actionscript):ExternalInterface.addCallBack();

と覚えています。

で、その中でも今日は、ExternalInterface.call()の記録です。

ExternalInterface.call( “呼び出したいjsの関数名” );

という風に使います。

例えば、swf内にある、aryという配列をjsのalertArrayという関数に渡すとしましょう。

swfではActionscriptをこんな風に書いておきます。

注:下にあるサンプルには、全角スペースが含まれていますので、実際に使う時は全角スペースを削除して下さい。

swf ————————————————–

import flash.external.ExternalInterface;  //
import flash.events.SecurityError;  //エラーに対処するため

var ary:Array = [“これはエラー”, “番号:2″]:

if( ExternalInterface.available){ //一応ExternalInterfaceが使えるかを確認
 try{
  ExternalInterface.call( “alertArray”, ary );
 }
 catch(e:SecurityError){
  /*
   セキュリティエラーは、許可されていないところへ接続しようとした場合などに起こります。
   例:crossdomain.xmlが存在しない外部ドメインへURLLoaderなどで接続しようとした、など
  */
  //セキュリティエラーの場合の処理(エラーメッセージを出力するとか)
  
 }
 catch(e:Error){
  //それ以外のエラーが起きた場合(同じくエラーメッセージを出力するとか)
  
 }
}

try、catchでくくっておかないと、実行時にエラーが出たり、強制終了しないといけなくなったりするので注意っす!

js(というか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>so</title>
<script language=”javascript”>AC_FL_RunContent = 0;</script>
<script src=”AC_RunActiveContent.js” language=”javascript”></script>
<script type=”text/javascript”>

//この関数をswfから呼び出します
function alertArray(ary){
alert( ary[0] + ” : ” + ary[1] );
}

</script>
</head>
<body bgcolor=”#ffffff”>
<script language=”javascript”>

if (AC_FL_RunContent == 0) {
alert(“このページでは \”AC_RunActiveContent.js\” が必要です。”);
} else {
AC_FL_RunContent(
‘codebase’, ‘http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0′;,
‘width’, ‘550’,
‘height’, ‘400’,
‘src’, ‘so’,
‘quality’, ‘high’,
‘pluginspage’, ‘http://www.macromedia.com/go/getflashplayer’;,
‘align’, ‘middle’,
‘play’, ‘true’,
‘loop’, ‘true’,
‘scale’, ‘showall’,
‘wmode’, ‘window’,
‘devicefont’, ‘false’,
‘id’, ‘so’,
‘bgcolor’, ‘#ffffff’,
‘name’, ‘so’,
‘menu’, ‘true’,
‘allowFullScreen’, ‘false’,
‘allowScriptAccess’,’sameDomain’,
‘movie’, ‘so’,
‘salign’, ”
); //end AC code
}
</script>
<noscript>
<object classid=”clsid:d27cdb6e-ae6d-11cf-96b8-444553540000″ codebase=”http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0″; width=”550″ height=”400″ id=”so” align=”middle”>
<param name=”allowScriptAccess” value=”sameDomain” />
<param name=”allowFullScreen” value=”false” />
<param name=”movie” value=”so.swf” /><param name=”quality” value=”high” /><param name=”bgcolor” value=”#ffffff” /> <embed src=”so.swf” quality=”high” bgcolor=”#ffffff” width=”550″ height=”400″ name=”so” align=”middle” allowScriptAccess=”sameDomain” allowFullScreen=”false” type=”application/x-shockwave-flash” pluginspage=”http://www.macromedia.com/go/getflashplayer”; />
</object>
</noscript>
</body>
</html>

—-
とすると、このhtmlを開いたときに、
『これはエラー : 番号:2』
という文字が入ったアラートボックスが表示されるはず。

もしトラブルなどがあった場合は、
・本当にそのswf、jsは読み込まれてから実行されているか、などを確認すればいいかと思います。
あとは、僕がタイプミスしていないか、など。。。。

2007年9月18日22:22

SharedObject

LINEで送る
Pocket

SharedObjectで困ったのでメモ。

a.swfとb.swfがあり、この2ファイル間で同じSharedObjectを共有したい場合、

getLocalの第二引数でパスを明示すればいいみたい。

例えば:
var so:SharedObject = SharedObject.getLocal(“sharedObject名”, “/”);
とすれば共有できやすよ!

2007年9月7日04:55