Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays AS3 Flash-如何从不同功能中删除动态创建的MovieClip?_Arrays_Actionscript 3_Flash - Fatal编程技术网

Arrays AS3 Flash-如何从不同功能中删除动态创建的MovieClip?

Arrays AS3 Flash-如何从不同功能中删除动态创建的MovieClip?,arrays,actionscript-3,flash,Arrays,Actionscript 3,Flash,使用数组,我创建了一个由瓷砖组成的MovieClip。我需要动态创建网格,因为有多个大小选项。如果用户选择不同的网格大小,我需要在添加新网格之前删除当前的网格-这就是我遇到的问题。以下是创建网格的代码: public function createGrid() { var gridItems = new Array(); var grid:MovieClip = new MovieClip(); addChildAt(grid, 0); for (va

使用数组,我创建了一个由瓷砖组成的MovieClip。我需要动态创建网格,因为有多个大小选项。如果用户选择不同的网格大小,我需要在添加新网格之前删除当前的网格-这就是我遇到的问题。以下是创建网格的代码:

    public function createGrid() {

    var gridItems = new Array();
    var grid:MovieClip = new MovieClip();
    addChildAt(grid, 0);

    for (var i:int = 0; i < gridSize; i++) {
    gridItems[i] = new tile();
    gridItems[i].x = (i % gridBreak) * (gridItems[i].width );
    gridItems[i].y = int(i / gridBreak) * (gridItems[i].height);
    grid.addChild(gridItems[i]);
        }

    grid.x = stage.stageWidth/ 2 - grid.width/2;
    grid.y = (stage.stageHeight - 100) / 2 - grid.height/2;

    }
公共函数createGrid(){
var gridItems=新数组();
var grid:MovieClip=新的MovieClip();
addChildAt(网格,0);
对于(变量i:int=0;i
如何从不同的函数中删除网格?似乎每当我离开createGrid()函数时,对grid的引用就会丢失

谢谢你的建议


完整代码如下。下拉菜单是从-我知道代码是混乱的…这是一个正在进行的工作

package  {

import flash.display.MovieClip;
import flash.events.*;
import flash.geom.*;
import flash.display.*;
import flash.ui.*;
import flash.text.*;
import com.dropdown.DropDown;
import fl.controls.*;

public class sp2h extends MovieClip {

    public var gridSize:Number = 225;
    public var gridBreak:Number = 15;

    private var gridItems = new Array();
    private var grid:MovieClip = new MovieClip();

    public var rotate:Number = 1;
    public var gridStatus:Number = 0;

    public var dropDwn:MovieClip;
    public var t:TextField;
    public var dropDArray:Array = new Array({label:"Size 0 - 15x15",     data:225},{label:"Size 1 - 18x15", data:270},{label:"Size 2 - 18x18", data:324},
                                            {label:"Size 3 - 21x18", data:378},{label:"Size 4 - 21x21", data:441},{label:"Size 5 - 24x21", data:504},
                                            {label:"Size 6 - 24x24", data:576},{label:"Size 7 - 27x24", data:648},{label:"Size 8 - 27x27", data:729},
                                            {label:"Size 9 - 30x27", data:810},{label:"Size 10 - 30x30", data:900},{label:"Size 11 - 33x30", data:990},
                                            {label:"Size 12 - 33x33", data:1089},{label:"Size 13 - 36x33", data:1188},{label:"Size 14 - 36x36", data:1296},
                                            {label:"Size 15 - 39x36", data:1404},{label:"Size 16 - 39x39", data:1521},{label:"Size 17 - 42x39", data:1638},
                                            {label:"Size 18 - 42x42", data:1764});
    public var dropDArray2:Array = new Array({label:"Hip & Stylish", data:0},{label:"Christmas", data:1},{label:"Easter", data:2},{label:"Slick", data:3});

public function sp2h() {
    createGrid();

    dropDwn = new DropDown();
    dropDwn.x = 50;
    dropDwn.y = 820;
    dropDwn.init(dropDArray,150, 25,"up");

    addChild(dropDwn);
    dropDwn.addEventListener(Event.CHANGE,onDropDown);

    createStatusField();

    function createStatusField():void
    {
            t = new TextField();
            t.name = "tField";
            t.x = 350;
            t.y = 100;
            t.selectable = false;
            t.autoSize = TextFieldAutoSize.CENTER;
            addChild(t);
    }

    function onDropDown(event:Event)
    {

      t.text = event.target.selectedObject.label;

      gridSize = event.target.selectedObject.data;

    switch (gridSize){
    case 225:
    gridBreak = 15;
    break;
    case 270:
    gridBreak = 18;
    break;
    case 324:
    gridBreak = 18;
    break;
    case 378:
    gridBreak = 21;
    break;
    case 441:
    gridBreak = 21;
    break;
    case 504:
    gridBreak = 24;
    break;
    case 576:
    gridBreak = 24;
    break;
    case 648:
    gridBreak = 27;
    break;
    case 729:
    gridBreak = 27;
    break;
    case 810:
    gridBreak = 30;
    break;
    case 900:
    gridBreak = 30;
    break;
    case 990:
    gridBreak = 33;
    break;
    case 1089:
    gridBreak = 33;
    break;
    case 1188:
    gridBreak = 36;
    break;
    case 1296:
    gridBreak = 36;
    break;
    case 1404:
    gridBreak = 39;
    break;
    case 1521:
    gridBreak = 39;
    break;
    case 1638:
    gridBreak = 42;
    break;
    case 1764:
    gridBreak = 42;
    break;
    }

    createGrid();
    }

    wtt1.addEventListener(MouseEvent.MOUSE_DOWN, wtt1_ClickToDrag);

    function wtt1_ClickToDrag(event:MouseEvent):void
    {
    wtt1.startDrag();

    stage.addEventListener(KeyboardEvent.KEY_DOWN, myKeyDown);
    function myKeyDown(e:KeyboardEvent):void{
    if (e.keyCode == Keyboard.SPACE){
        rotate = rotate + 1;
        if (rotate == 5){
            rotate = 1;
        }
        trace(rotate);
        wtt1.gotoAndStop(rotate);
        } 
    }

    stage.addEventListener(MouseEvent.MOUSE_UP, wtt1_ReleaseToDrop);

    function wtt1_ReleaseToDrop(event:MouseEvent):void
    {

    wtt1.stopDrag();
    stage.removeEventListener(KeyboardEvent.KEY_DOWN, myKeyDown);
    }}}

    public function createGrid() {

    removeGrid(); //a separate function that removes your grid

    addChildAt(grid, 0);
    gridStatus = 1;

    for (var i:int = 0; i < gridSize; i++) {
    gridItems[i] = new tile();
    gridItems[i].x = (i % gridBreak) * (gridItems[i].width );
    gridItems[i].y = int(i / gridBreak) * (gridItems[i].height);
    grid.addChild(gridItems[i]);

        }
    //align to center   
    grid.x = stage.stageWidth/ 2 - grid.width/2;
    grid.y = (stage.stageHeight - 100) / 2 - grid.height/2;
    //send to back  
    addChildAt(bggrid,0);

    }

    public function removeGrid():void { 

    if(grid && grid.parent) removeChild(grid);
    if (contains(grid)) {
    trace("grid is on still on stage")
    }
    trace(grid.parent)

  }}}
包{
导入flash.display.MovieClip;
导入flash.events.*;
导入flash.geom.*;
导入flash.display.*;
导入flash.ui.*;
导入flash.text.*;
导入com.dropdown.dropdown;
进口流动性控制。*;
公共类sp2h扩展MovieClip{
公共变量gridSize:Number=225;
公共变量gridBreak:Number=15;
private var gridItems=new Array();
私有变量网格:MovieClip=new MovieClip();
公共变量:数字=1;
公共变量gridStatus:编号=0;
公共var dropDwn:MovieClip;
公共变量t:TextField;
public var dropDArray:Array=新数组({label:“大小0-15x15”,数据:225},{label:“大小1-18x15”,数据:270},{label:“大小2-18x18”,数据:324},
{标签:“尺寸3-21x18”,数据:378},{标签:“尺寸4-21x21”,数据:441},{标签:“尺寸5-24x21”,数据:504},
{标签:“尺寸6-24x24”,数据:576},{标签:“尺寸7-27x24”,数据:648},{标签:“尺寸8-27x27”,数据:729},
{标签:“尺寸9-30x27”,数据:810},{标签:“尺寸10-30x30”,数据:900},{标签:“尺寸11-33x30”,数据:990},
{标签:“尺寸12-33x33”,数据:1089},{标签:“尺寸13-36x33”,数据:1188},{标签:“尺寸14-36x36”,数据:1296},
{标签:“尺寸15-39x36”,数据:1404},{标签:“尺寸16-39x39”,数据:1521},{标签:“尺寸17-42x39”,数据:1638},
{标签:“尺寸18-42x42”,数据:1764});
public var dropDArray2:Array=新数组({label:“Hip&style”,数据:0},{label:“圣诞节”,数据:1},{label:“复活节”,数据:2},{label:“Slick”,数据:3});
公共功能sp2h(){
createGrid();
dropDwn=新的下拉列表();
dropDwn.x=50;
落差y=820;
dropDwn.init(dropDArray,150,25,“向上”);
addChild(dropDwn);
dropDwn.addEventListener(事件、更改、onDropDown);
createStatusField();
函数createStatusField():void
{
t=新文本字段();
t、 name=“tField”;
t、 x=350;
t、 y=100;
t、 可选=假;
t、 autoSize=TextFieldAutoSize.CENTER;
addChild(t);
}
函数onDropDown(事件:事件)
{
t、 text=event.target.selectedObject.label;
gridSize=event.target.selectedObject.data;
开关(网格大小){
案例225:
网格中断=15;
打破
案例270:
网格中断=18;
打破
案例324:
网格中断=18;
打破
判例378:
gridBreak=21;
打破
案例441:
gridBreak=21;
打破
案例504:
网格中断=24;
打破
案例576:
网格中断=24;
打破
案例648:
网格中断=27;
打破
判例729:
网格中断=27;
打破
案例810:
网格中断=30;
打破
案例900:
网格中断=30;
打破
案例990:
gridBreak=33;
打破
判例1089:
gridBreak=33;
打破
判例1188:
网格中断=36;
打破
判例1296:
网格中断=36;
打破
案例1404:
gridBreak=39;
打破
判例1521:
gridBreak=39;
打破
案例1638:
网格中断=42;
打破
判例1764:
网格中断=42;
打破
}
createGrid();
}
wtt1.addEventListener(MouseEvent.MOUSE_向下,wtt1_单击拖动);
函数wtt1\u ClickToDrag(事件:MouseEvent):void
{
wtt1.startDrag();
stage.addEventListener(KeyboardEvent.KEY_DOWN,myKeyDown);
函数myKeyDown(e:键盘事件):无效{
if(e.keyCode==Keyboard.SPACE){
旋转=旋转+1;
如果(旋转==5){
旋转=1;
}
跟踪(旋转);
wtt1.旋转和停止(旋转);
} 
}
stage.addEventListener(MouseEvent.MOUSE\u UP,wtt1\u releaseTrop);
函数wtt1\u releasetorop(事件:MouseEvent):void
{
wtt1.stopDrag();
stage.removeEventListener(KeyboardEvent.KEY_DOWN,myKeyDown);
}}}
公共函数createGrid(){
removeGrid();//一个单独的函数,用于删除网格
addChildAt(网格,0);
gridStatus=1;
对于(变量i:int=0;i
变量仅在
private var gridItems:Array;
private var grid:MovieClip;

public function createGrid() {

    removeGrid(); //a separate function that removes your grid

    gridItems = new Array();
    grid = new MovieClip();
    addChildAt(grid, 0);

    for (var i:int = 0; i < gridSize; i++) {
        gridItems[i] = new tile();
        gridItems[i].x = (i % gridBreak) * (gridItems[i].width );
        gridItems[i].y = int(i / gridBreak) * (gridItems[i].height);
        grid.addChild(gridItems[i]);
    }

    grid.x = stage.stageWidth/ 2 - grid.width/2;
    grid.y = (stage.stageHeight - 100) / 2 - grid.height/2;

}

public function removeGrid():void {
     //if the grid has a value already and has a parent (is on the stage), remove it 
    if(grid && grid.parent) removeChild(grid);
}