クリックされている配列オブジェクトを削除し、別の配列に追加して別の場所に表示しようとしています。現在のコードを掲載しました。
たぶん問題があると思います.currentTarget
。.currentTarget を .target に置き換えようとしましたが、関数はこの行を通過しませんでした: if (socket_Array[i] == in_event.target)
(このバージョンでは、.currentTarget を .target に変更しようとしたときに言っているだけです)
私が得るエラーはこれです:
TypeError: Error #1034: Type Coercion failed: cannot convert []@2c2a8f11 to flash.display.DisplayObject.
オブジェクトを作成する関数:
function createSockets():void
{
var socket_one:socket = new socket ();
var socket_two: socketyellow = new socketyellow ();
var socket_three: socketdarkorange = new socketdarkorange ();
var socket_four: socketlightgreen= new socketlightgreen ();
var socket_five: socketpurple = new socketpurple ();
var socket_six: socketdarkgreen = new socketdarkgreen ();
socket_Array.push(socket_one, socket_two,socket_three, socket_four, socket_five, socket_six);
for (var i:int=0; i<socket_Array.length; i++)
{
addChild(socket_Array[i]);
socket_Array [i].x = socket_x_position;
socket_Array [i].y = socket_y_position;
socket_Array[i].addEventListener(MouseEvent.MOUSE_DOWN, removeItemOnClick);
}
temp_update ();
}
クリックされたオブジェクトを取り除き、それを配列に追加すると想定される関数。
function removeItemOnClick(in_event:MouseEvent):void
{
var i:int = 0;
for (i=0; i<socket_Array.length; i++)
{
if (socket_Array[i] == in_event.currentTarget)
{
trace ("it goes here");
var removed = socket_Array.splice(i, 1);
trace (removed);
trace (socket_Array );
var drop:Sprite = in_event.currentTarget as Sprite;
removeChild (drop);
removedItem[removedItem.length] = removed;
createremovedItem ();
trace (removedItem);
updateDisplay ();
choice_updateDisplay ();
}
}
}
var removedItem_position = 0
function createremovedItem () {
for (removedItem_position; removedItem_position<removedItem.length; removedItem_position++){
addChild (removedItem [removedItem_position]);
}
}