佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 2599|回复: 2

as3 如何控制每个child array的boolean?

[复制链接]
发表于 5-2-2014 04:47 PM | 显示全部楼层 |阅读模式
如题,每当我click一个button后,就会把child 加到stage上。。

child是在array里的。。我要每个child都有自己的boolean。。请问要怎么弄?

回复

使用道具 举报


ADVERTISEMENT

发表于 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


1.jpg

图中的上排是我的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 编辑

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 24-4-2024 10:07 AM , Processed in 0.063410 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表