ラベル ActionScript2 の投稿を表示しています。 すべての投稿を表示
ラベル ActionScript2 の投稿を表示しています。 すべての投稿を表示

2009/06/02

mixiアプリでFlash(2)

以前公開したガジェットのサンプルの不良を早速見つけました。

以前のサンプルでは、
プロフィールの取得と、

gadgets.util.registerOnLoadHandler(get_viewer_profile);

Flashの表示が、
gadgets.util.registerOnLoadHandler(show_flash);

非同期に行われていた。

そのため、プロフィールの取得が済む前に、先にFlashが読み込まれてしまうことがありえる。
この場合、Flash内では必要な変数(プロフィール)を取得できず困ったことに…

この事態を避けるため、プロフィールの取得がすんだ段階でFlashの表示を行うように、サンプルを改変しました。

sample.xml
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="use Social Data">
<Require feature="opensocial-0.8"/>
<Require feature="flash"/>
</ModulePrefs>
<Content type="html">
<![CDATA[

<script type="text/javascript">
var viewer = new Object(); // globalで必要な変数を宣言

function get_viewer_profile() {
var request = opensocial.newDataRequest();
request.add(request.newFetchPersonRequest(
opensocial.IdSpec.PersonId.VIEWER), "viewer_data");
request.send(function (response) {
var item = response.get("viewer_data");
if (item.hadError()) {
// エラー処理。item.getError() で詳細情報を取得
return;
}

// 実行ユーザのプロフィールを参照
var person = item.getData();

viewer.name = person.getField(opensocial.Person.Field.ID); // ID
viewer.name = person.getField(opensocial.Person.Field.NAME); // 名前
viewer.nickname = person.getField(opensocial.Person.Field.NICKNAME); // ニックネーム
viewer.url = person.getField(opensocial.Person.Field.PROFILE_URL); // プロフィールURL
viewer.icon = person.getField(opensocial.Person.Field.THUMBNAIL_URL); // アイコンURL
viewer.address = person.getField(opensocial.Person.Field.ADDRESSES); // 住所
viewer.age = person.getField(opensocial.Person.Field.AGE); // 年齢
viewer.birthday = person.getField(opensocial.Person.Field.DATE_OF_BIRTH); // 誕生日
viewer.bloodtype = person.getField(mixi.PersonField.BLOOD_TYPE); // 血液型

// Flashの表示
gadgets.util.registerOnLoadHandler(show_flash);
});
}
gadgets.util.registerOnLoadHandler(get_viewer_profile);

function show_flash() {
gadgets.flash.embedFlash(
"sample.swf", "externalContainer", "9.0.0",
{
width : 400, // 幅
height : 300, // 高さ
quality : 'high',
wmode : 'transparent',
allowScriptAccess : 'always' // swfからのaccessを許可
}
);
}

function getMixiPerson(){
return viewer; // 必要な変数を返す
}
</script>

<div id="externalContainer"></div>

<script type="text/javascript">

</script>

]]>
</Content>
</Module>


続き

2009/06/01

mixiアプリでFlash

mixiアプリが開始して久しいですね。
以下は、mixiアプリでFlashを使うための備忘録です。

以下のガジェットをmixiアプリで登録するものとする。

sample.xml

<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="use Social Data">
<Require feature="opensocial-0.8"/>
<Require feature="flash"/>
</ModulePrefs>
<Content type="html">
<![CDATA[

<script type="text/javascript">
var viewer = new Object(); // globalで必要な変数を宣言

function get_viewer_profile() {
var request = opensocial.newDataRequest();
request.add(request.newFetchPersonRequest(
opensocial.IdSpec.PersonId.VIEWER), "viewer_data");
request.send(function (response) {
var item = response.get("viewer_data");
if (item.hadError()) {
// エラー処理。item.getError() で詳細情報を取得
return;
}

// 実行ユーザのプロフィールを参照
var person = item.getData();

viewer.name = person.getField(opensocial.Person.Field.ID); // ID
viewer.name = person.getField(opensocial.Person.Field.NAME); // 名前
viewer.nickname = person.getField(opensocial.Person.Field.NICKNAME); // ニックネーム
viewer.url = person.getField(opensocial.Person.Field.PROFILE_URL); // プロフィールURL
viewer.icon = person.getField(opensocial.Person.Field.THUMBNAIL_URL); // アイコンURL
viewer.address = person.getField(opensocial.Person.Field.ADDRESSES); // 住所
viewer.age = person.getField(opensocial.Person.Field.AGE); // 年齢
viewer.birthday = person.getField(opensocial.Person.Field.DATE_OF_BIRTH); // 誕生日
viewer.bloodtype = person.getField(mixi.PersonField.BLOOD_TYPE); // 血液型
});
}
gadgets.util.registerOnLoadHandler(get_viewer_profile);

function getMixiPerson(){
return viewer; // 必要な変数を返す
}
</script>

<div id="externalContainer"></div>

<script type="text/javascript">
function show_flash() {
gadgets.flash.embedFlash(
"sample.swf", "externalContainer", "9.0.0",
{
width : 400, // 幅
height : 300, // 高さ
quality : 'high',
wmode : 'transparent',
allowScriptAccess : 'always' // swfからのaccessを許可
}
);
}
gadgets.util.registerOnLoadHandler(show_flash);
</script>

]]>
</Content>
</Module>


上記のガジェット中のsample.swfは以下のソースをビルドしたものとする。

sample.fla
import flash.external.ExternalInterface;

var mixiPerson = ExternalInterface.call("getMixiPerson"); // JavaScriptのgetMixiPerson関数を呼び出す


このとき変数mixiPersonにはmixi上でそのアプリを閲覧している人の情報が格納される。
あとはご自由に! 続き

2009/05/27

MIXI QUEST


内容
mixiアプリに挑んでみました!
マイミクと一緒に戦ったり、
マイミクを倒したりするRPGです。
以下の問題に関しては、mixiアプリAPIが将来的に拡張されれば、対応する予定…
・所属するコミュニティが技として登場しますが、効果が適当
・味方パーティの負け判定がない
やり方
・←→↑↓…移動・選択
・スペースキー…決定

http://mixi.jp/run_appli.pl?id=1941
※上のURLにアクセスしてください。
続き

2007/11/23

TYPING MAKER


内容
タイピングゲームを作って、遊べるゲーム。
コメントの新しい可能性を模索し、作ってみました…。
やり方
【作り方】
この画面下の“コメントを投稿”をクリックし、半角大文字の英字で、問題を投稿してください。
【遊び方】
左下ウィンドウに表示される文字を、キーボードで打ち込んでください。


※日本語入力をオフにしてください。
※ゲームが開始されない場合、ブラウザのセキュリティを“中”に設定してください。
----
2011/03/17追記
ファイルサーバ変更に伴い、本ゲームの公開を中止します。
続き

2007/09/25

ORE THE HERO Flash


内容
以前、制作した携帯用アプリのFlash版…にするつもりだったが、設定変更を重ね、完全に別物に。
やっと“プレイヤーのテクニック”がものをいうゲームができました。
やり方
【概要】
高スピードで(体が真っ赤になった状態で)体当たりをして、攻撃する。
低スピードで敵にぶつかると、ダメージを負う。
また、ブロックから落ちると即死。
【操作方法】
・↑…ジャンプ
・←→…移動
【アイテム】
・青カプセル…残機を1回復
・赤カプセル…より低いスピードでの攻撃を可能にする

続き

2007/08/18

TENKAI RUBIK'S CUBE


内容
ルービックキューブを展開図で解くゲーム。
私はルービックキューブが苦手です。それはきっと、色の位置関係を把握できないからです。そこで、6面すべてを見られるルービックキューブ(のゲーム)を作りました。
かえって複雑になってます…。
やり方
・モード変更…スペースキー
・移動モード(カーソル点滅なし)…↑←↓→でカーソル移動
・ずらしモード(カーソル点滅)…↑←↓→でずらす

続き

2007/07/25

OCHI OCHI COMMENT


内容
コメントが楽しく見られるゲーム(?)。
ゲーム上で、あなたの分身が踊る!
ただ、それだけ!
やり方
この画面下の“コメントを投稿”をクリックし、コメントしてみてください。
ただ、それだけ!


※ゲームにコメントが反映されるのに、時間がかかる場合があります。
※ゲームが表示されない場合、ブラウザのセキュリティを“中”に設定してください。
----
2011/03/17追記
ファイルサーバ変更に伴い、本ゲームの公開を中止します。
続き

2007/06/21

KINOCO GARI


内容
森に生えるすべてのキノコを食べるゲーム。
動物たちと会話をしながら、キノコの在り処を探ろう!
ちなみに食べたものは10個までしか、胃に残らない。
やり方
マップ上では、←↑→↓で移動。
スペースキーで食べたものを表示。
会話中は、↑↓で選択し、スペースキーで決定。

続き

2007/01/10

PLAY MUSIC!


内容
夜になると駅に集まるミュージシャン。自然と集まるお客さん。
君も演奏しよう!
やり方
画面下のカーソルにボールが当たるタイミングに合わせて、↑→←を押す。
かっこいいメロディを演奏しよう!
何人のお客さんが来てくれるかな?


※このゲームは音がでます。ご注意下さい。
続き

MAKE UP!


内容
女の子は、化粧で変わる!?
たくさんの化粧品の中から、最高の組み合わせを見つけよう!
やり方
↑→↓←で移動、スペースキーで話しかける。
化粧品を買って、謎の男にメイクしてもらおう!
どれだけお洒落になれるかな?

続き

2006/12/18

DRINK BEER!


内容
そろそろ、忘年会のシーズン。
急性アルコール中毒に注意して、たくさん飲みましょう!
やり方
←→で飲み物を選び、スペースキーで飲む。
顔が赤くなったら、水を飲んで酔いをさます。
バーの閉店時間は23:00。
さて、何杯ビールが飲めるかな?

続き

2006/12/12

GET DOG!


内容
夕暮れ時、散歩道には可愛い犬がたくさん。
捕まえて、家に連れて帰ろう!
やり方
←→で移動し、スペースキーでジャンプ。
犬をなるべくたくさん捕まえよう!カラスにぶつかると犬が逃げるので注意。

続き

2006/04/17

OCHI SHOOT


内容
前作まで存在した、ゲームクリアの概念を捨てた。
自分が注いだ力の分だけ結果を反映する、終わりなきゲーム。
こんな風に書くと格好良く感じる。
やり方
↑↓で移動し、スペースキーでミサイル発射。
黄色い人を、ひたすら打ち倒せ!

続き

2006/03/24

OCHI ADVENTURE


内容
某人気横スクロールゲームを自分なりに再現。
ただし敵は踏んでも倒せない。
やり方
←→で移動し、スペースキーでジャンプ。
メガネを避けて進み姫を救え!

続き

2006/02/24

OCHI QUEST2


内容
私の苦労作。
製作期間が前作の3倍。(多分)
裏技もある。
やり方
←↑→↓で移動し、スペースキーで決定。
スペースキーで人に話しかけることも出来る。

続き

2006/02/06

OCHI QUEST


内容
私の処女作。
勝つも負けるも運次第、しかも負ける確率のほうが高い。
ゲームではないと思う。
やり方
←↑→↓で移動し、スペースキーで決定。

続き