查看: 2599|回复: 2
|
as3 如何控制每个child array的boolean?
[复制链接]
|
|
如题,每当我click一个button后,就会把child 加到stage上。。
child是在array里的。。我要每个child都有自己的boolean。。请问要怎么弄?
|
|
|
|
|
|
|
|
发表于 5-2-2014 11:56 PM
|
显示全部楼层
假设array的名称是 my_array.
按钮是 my_button
物品是my_mc
var my_array:Array = new Array();
var my_button:Button = new My_Button();//在库中做好的按钮
stage.addChild(my_button);
my_button.addEventListener(MouseEvent.CLICK,action);
function action (e:MouseEvent):void{
var my_child:MovieClip = new My_Child();//如果有实体的话就在这边,没有的话就new MovieClip();
my_child.my_boolean = false;
my_array.push(my_child);
}
for(var i:i<3;i++){
action();
}
my_array[0].my_boolean = false;
my_array[1].my_boolean = true;
my_array[2].my_boolean = true;
trace(my_array[0].my_boolean);
trace(my_array[1].my_boolean);
trace(my_array[2].my_boolean); |
|
|
|
|
|
|
|
楼主 |
发表于 7-2-2014 11:06 PM
|
显示全部楼层
CelineHeng 发表于 5-2-2014 11:56 PM
假设array的名称是 my_array.
按钮是 my_button
物品是my_mc
图中的上排是我的button.. click了会把child add 在下面的stage..
当C和H靠近时,会create一条line..
图中看到的是3个C连接着一个H.. 我要做的是H只可以接受一个C..也就是说只有一个C可以链接到H..
要怎么使用boolean?还是有其他方法??
我现在的code,全部在main class:
line create在checkBond function里
package
{
import flash.display.*;
import flash.events.*;
public class main extends MovieClip
{
public static var cArray:Array = new Array();
public static var hArray:Array = new Array();
public static var xArray:Array = new Array();
public static var oArray:Array = new Array();
var bondArray:Shape=new Shape();
public function main()
{
addEventListener(MouseEvent.MOUSE_UP,stopAllDrag);
add_c_mol.addEventListener(MouseEvent.MOUSE_DOWN, clickCmol);
add_h_mol.addEventListener(MouseEvent.MOUSE_DOWN, clickHmol);
add_x_mol.addEventListener(MouseEvent.MOUSE_DOWN, clickXmol);
add_o_mol.addEventListener(MouseEvent.MOUSE_DOWN, clickOmol);
addEventListener(Event.ENTER_FRAME,checkBond);
}
private function stopAllDrag(e:MouseEvent):void
{
stopDrag();
}
private function clickCmol(e:MouseEvent)
{
cArray.push(new C_mol());
cArray[cArray.length - 1].x=112;
cArray[cArray.length - 1].y=197;
addChild(cArray[cArray.length - 1]);
cArray[cArray.length - 1].addEventListener(MouseEvent.MOUSE_DOWN,dragCmol);
cArray[cArray.length - 1].addEventListener(Event.ENTER_FRAME,trashC);
}
private function dragCmol(e:MouseEvent):void
{
e.target.startDrag();
}
private function trashC (e:Event):void
{
if(e.target.hitTestObject(trash))
{
e.target.visible=false;
}
if(e.target.y<180)
{
e.target.y=180;
stopDrag();
}
}
private function clickHmol(e:MouseEvent)
{
hArray.push(new H_mol());
hArray[hArray.length - 1].x=280;
hArray[hArray.length - 1].y=174;
addChild(hArray[hArray.length - 1]);
hArray[hArray.length - 1].addEventListener(MouseEvent.MOUSE_DOWN,dragHmol);
hArray[hArray.length - 1].addEventListener(Event.ENTER_FRAME,trashH);
}
private function dragHmol(e:MouseEvent):void
{
e.target.startDrag();
}
private function trashH (e:Event):void
{
if(e.target.hitTestObject(trash))
{
e.target.visible=false;
}
if(e.target.y<152)
{
e.target.y=152;
stopDrag();
}
}
private function clickXmol(e:MouseEvent)
{
xArray.push(new X_mol());
xArray[xArray.length - 1].x=474;
xArray[xArray.length - 1].y=201;
addChild(xArray[xArray.length - 1]);
xArray[xArray.length - 1].addEventListener(MouseEvent.MOUSE_DOWN,dragXmol);
xArray[xArray.length - 1].addEventListener(Event.ENTER_FRAME,trashX);
}
private function dragXmol(e:MouseEvent):void
{
e.target.startDrag();
}
private function trashX (e:Event):void
{
if(e.target.hitTestObject(trash))
{
e.target.visible=false;
}
if(e.target.y<186)
{
e.target.y=186;
stopDrag();
}
}
private function clickOmol(e:MouseEvent)
{
oArray.push(new O_mol());
oArray[oArray.length - 1].x=648;
oArray[oArray.length - 1].y=189;
addChild(oArray[oArray.length - 1]);
oArray[oArray.length - 1].addEventListener(MouseEvent.MOUSE_DOWN,dragOmol);
oArray[oArray.length - 1].addEventListener(Event.ENTER_FRAME,trashO);
}
private function dragOmol(e:MouseEvent):void
{
e.target.startDrag();
}
private function trashO (e:Event):void
{
if(e.target.hitTestObject(trash))
{
e.target.visible=false;
}
if(e.target.y<187)
{
e.target.y=187;
stopDrag();
}
}
private function checkBond(e:Event):void
{
bondArray.graphics.clear();
for (var i:uint = 0; i < main.cArray.length; i++)
{
for (var j:uint = 0; j < main.hArray.length; j++)
{
if (Math.pow(Math.abs(main.cArray.x - main.hArray[j].x),2)+Math.pow(Math.abs(main.cArray.y - main.hArray[j].y),2) < Math.pow(100,2))
{
//trace("yes");
bondArray.graphics.lineStyle(8,00000, 1);
bondArray.graphics.moveTo(main.cArray.x,main.cArray.y);
bondArray.graphics.lineTo(main.hArray[j].x,main.hArray[j].y);
addChildAt(bondArray,0);
}
else
{
//bondArray.graphics.clear();
}
}
}
}
}
}
本帖最后由 KaySea 于 7-2-2014 11:08 PM 编辑
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|