今回は少しASの書き方で苦戦しました。

1.AS2.0→AS3.0へ

今回もいつも通り本家様からスクリプトを拝借

・アクションレイヤー1フレーム
function display (a, b)
{
i = 0;
for (i = 1; i <= 1; i++)
{
_root[a + i]._visible = b;
}
}
display ("item", false);
keyhensuu=0;

・アクションレイヤー2フレーム
if(keyhensuu == 1)
{
key_mc._visible=false;
}

・鍵レイヤー2フレーム
_root.item1._visible=true;
_root.keyhensuu=1;
を取得時の操作に付け足す。

のこの3スクリプトですね。
下の2つは前回までに出てきているので
特筆する事はないのですが、
問題は一番上の部分です。 

ここの以下の2つの部分に大苦戦しました…。
 

function display (a, b)
display ("item", false);

まず①の部分は調べてみると、
どうやらa,bという要素を定義しているようなのですが、
上手い書き換え方が分からず、

var a =  "item";
var b = false;


と一つずつ定義しました。
function displayがただの定義では無さそうなので、
少し不安ですがとりあえずは正常に動作したので、
不具合が出るまでこのまま続けます。
※この辺り分かる方いらっしゃれば教えて頂けると嬉しいです。



_root[a + i]

そしてこの書き方に相当てこずりました…。
代入後の式が_root[item+i]となるのですが、
この状態でiに1が代入されると

_root.item1と変換されるようです。

もし2が代入されるとitem2になるようで、
item(文字列)+変数という形にする事で、
まとめてアイテムを管理する事ができます。

この書き方は要チェックですね!


そんな訳で全スクリプトを書き換えた結果が

・アクションレイヤー1フレーム
//鍵の変数を定義
var keyhensuu = 0;

//itemのアイコンの表示を管理
var a =  "item";
var b = false;
var i = 0; 
for (i = 1; i <= 1; i++)
{
MovieClip(root)[a + i].visible = b;
}

ピクチャ 1


・アクションレイヤー2フレーム
//鍵の変数が1の時落ちている鍵を非表示
if(keyhensuu == 1)
{
key_mc.visible=false;
}

ピクチャ 2

・鍵レイヤー2フレーム
//鍵を取得したときitem1を表示&鍵の変数が1に
MovieClip(root).item1.visible = true;
MovieClip(root).keyhensuu = 1;

ピクチャ 3

予めアイテムは全て非表示にしておいて、
鍵を取得した時に鍵の変数に1を与えて、
アイコンを表示、落ちている鍵を非表示にします。

ピクチャ 4

無事に落ちている鍵を選択すると、
画面から鍵が消えアイコン欄に鍵が表示できました。

次回はアイテム欄のアイテム選択についてです。