Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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
添加了子对象,但未在Flash中显示_Flash_Oop_Actionscript - Fatal编程技术网

添加了子对象,但未在Flash中显示

添加了子对象,但未在Flash中显示,flash,oop,actionscript,Flash,Oop,Actionscript,我正在从xml向flash电影动态添加一系列对象,但在运行电影时它们不会出现。我有几乎相同的代码在不同的swf中添加对象,效果很好。从周日开始,我已经测试了8种方法,包括确保它们被添加到主MovieClip的子容器中(测试了显示列表),它们被添加到stage(有一个用于added_to_stage的侦听器),并且它们的位置是正确的(显示x、y值,并将它们与mouseX和mouseY值进行比较)。它们在显示列表中的正确位置。仍然没有物体。该类链接正确,库中有电影剪辑 你知道是什么导致了这个问题吗?

我正在从xml向flash电影动态添加一系列对象,但在运行电影时它们不会出现。我有几乎相同的代码在不同的swf中添加对象,效果很好。从周日开始,我已经测试了8种方法,包括确保它们被添加到主MovieClip的子容器中(测试了显示列表),它们被添加到stage(有一个用于added_to_stage的侦听器),并且它们的位置是正确的(显示x、y值,并将它们与mouseX和mouseY值进行比较)。它们在显示列表中的正确位置。仍然没有物体。该类链接正确,库中有电影剪辑

你知道是什么导致了这个问题吗? 我觉得我已经检查过了

“公共类小地图扩展了MovieClip” {

private-var-expLoader:LoadXML=new-LoadXML(“Experiences.xml”,true);
公共变量解释列表:XMLList;
private-var-popCont:Sprite=new-Sprite();
private-var-pop:弹出窗口;
private var expCont:Sprite=new Sprite();
私有var pnt:点;
私人经验;
公共功能小地图()
{
//需要mouseup mousedown(平移)和close功能
//必须加载有自己课程的体验
popCont.name=“popCont”;
expCont.name=“expCont”;
expCont.x=0;
expCont.y=0;
expCont.visible=true;
expCont.width=4000;
expCont.height=3000;
mm.addEventListener(MouseEvent.MOUSE_DOWN,panMap,false,0,true);
expLoader.addEventListener(“xmlLoaded”,onLoadexp);
mm.addChild(popCont);
mm.addChildAt(expCont,2);
}
私有函数onLoadexp(e:事件):void
{
expList=newXMLList(expLoader.xml.*);
跟踪(解释经度[1]);
对于(变量i:int=0;i<3;i++)
{
exp=新体验(expList.Description[i],expList.Experience_Name[i]);
exp.x=i*0.5+1156;
exp.y=i*0.75+1651;
exp.name=expList.Experience_ID[i];
/*exp.x=1284.3216*解释经度[i]+101472.0151;
经验y=-1744.6503*解释纬度[i]+80213.7461*/
exp.titl=expList.Experience_Name[i];
exp.desc=expList.Description[i];
exp.phourl=expList.photo[i];
exp.type=expList.County[i];
开关(exp.type)
{
案例“卡瓦萨湖之城”:
exp.gotoAndPlay(“黄色”);
打破
“彼得伯勒县”案:
exp.gotoAndPlay(“绿色”);
打破
案例“诺森伯兰县”:
exp.gotoAndPlay(“蓝色”);
打破
“诺森伯兰”案:
exp.gotoAndPlay(“红色”);
打破
}
exp.addEventListener(MouseEvent.CLICK,onExpClick,false,0,true);
exp.addEventListener(Event.ADDED\u TO\u STAGE,onAdded,false,0,true);
expCont.addChild(exp);
}
跟踪(expCont.root);
}
私有函数onExpClick(m:MouseEvent):void
{
//检查其他弹出窗口
如果(popCont.numChildren>0)
{
closePop();
}
pop=新弹出窗口(m.target.titl、m.target.desc);
pop.closer.addEventListener(MouseEvent.CLICK,closePop);
mm.popCont.addChild(pop);
}
已添加的私有函数(e:事件):void
{
跟踪(e.target.name+”添加到“+e.target.x+”、“+e.target.y”的阶段中);
}
私有函数closePop():void{
mm.popCont.removeChildAt(0);
}
私有函数窗格映射(m:MouseeEvent):无效
{
//单击并拖动以平移小地图
mm.startDrag();
跟踪(mouseX+,“+mouseY);
mm.addEventListener(MouseEvent.MOUSE_UP,relsMap,false,0,true);
}
私有函数relsMap(m:MouseEvent):void
{
//放下小地图
mm.止动阻力();
}'

一旦对象加载到flash中,您是否使用了
addchild()
命令?您需要将对象添加到显示列表中,以便在舞台上显示它们(假设您使用的是AS3编码)


一旦对象加载到flash中,您是否使用了
addchild()
命令?您需要将对象添加到显示列表中,以便在舞台上显示它们(假设您使用的是AS3编码)


老实说,除非您发布一些代码,否则在这方面没有什么可做的

我要说的是:如果我处在一种情况下,有些事情可能正在发生,有些事情没有发生,你只需要非常有条理地追溯逻辑链。如果你的对象没有出现在舞台上,那么可能会出现问题的事情的数量显然是有限的。 简短(且不完整)的检查表:

XML-数据被正确检索和解析了吗?找出变量。 -如果依赖库中的对象,请确保它们的链接名称都正确,并且路径正确。 显示列表-显然,addChild是必不可少的,但您的显示列表顺序是什么?是否有什么东西遮挡了您的对象? 对象道具-最后,确保“缩放”、“可见性”等属性设置正确

如果所有这些都失败了,请将您的序列从项目中移除,并使用最少数量的变量测试逻辑。如果您的测试用例工作正常,则更改bug查找的范围


祝你好运

老实说,除非你发布一些代码,否则这方面没什么可做的

我要说的是:如果我处在一种情况下,某件事情可能正在发生,而不是正在发生,你只需要非常有条理地追溯逻辑链。如果你的对象没有出现在
    private var expLoader:LoadXML = new LoadXML("Experiences.xml",true);
    public var expList:XMLList;
    private var popCont:Sprite = new Sprite();
    private var pop:PopUp;
    private var expCont:Sprite = new Sprite();
    private var pnt:Point;
    private var exp:Experiences;


    public function MiniMap()
    {
        // requires mouseup mousedown (pan) and close functions
        //must load experiences which will have their own class
        popCont.name = "popCont";
        expCont.name = "expCont";
        expCont.x = 0;
        expCont.y = 0;
        expCont.visible = true;
        expCont.width = 4000;
        expCont.height = 3000;
        mm.addEventListener(MouseEvent.MOUSE_DOWN, panMap, false, 0, true);
        expLoader.addEventListener("xmlLoaded", onLoadexp);
        mm.addChild(popCont);
        mm.addChildAt(expCont, 2);
    }
    private function onLoadexp(e:Event):void
    {



        expList = new XMLList(expLoader.xml.*);
        trace(expList.Longitude[1]);

        for (var i:int = 0; i < 3; i++)
        {
            exp = new Experiences(expList.Description[i],expList.Experience_Name[i]);
            exp.x = i * 0.5 + 1156;
            exp.y = i*0.75 + 1651;
            exp.name = expList.Experience_ID[i];

            /*exp.x = 1284.3216 * expList.Longitude[i] + 101472.0151;
            exp.y = -1744.6503 * expList.Latitude[i] + 80213.7461;*/

            exp.titl = expList.Experience_Name[i];
            exp.desc = expList.Description[i];

            exp.phourl = expList.photo[i];
            exp.type = expList.County[i];

            switch (exp.type)
            {
                case "City of Kawartha Lakes" :
                    exp.gotoAndPlay("Yellow");
                    break;
                case "Peterborough County" :
                    exp.gotoAndPlay("Green");
                    break;
                case "Northumberland County" :
                    exp.gotoAndPlay("Blue");
                    break;
                case "Northumberland" :
                    exp.gotoAndPlay("Red");
                    break;
            }
            exp.addEventListener(MouseEvent.CLICK, onExpClick, false,0, true);
            exp.addEventListener(Event.ADDED_TO_STAGE, onAdded, false,0, true);

            expCont.addChild(exp);

        }

        trace(expCont.root);

    }



    private function onExpClick(m:MouseEvent):void
    {

        //check for other popups 
        if (popCont.numChildren > 0)
        {
            closePop();
        }

        pop = new PopUp(m.target.titl,m.target.desc);
        pop.closer.addEventListener(MouseEvent.CLICK, closePop);
        mm.popCont.addChild(pop);


    }

    private function onAdded(e:Event):void
    {

        trace(e.target.name + " was added to the stage at "+e.target.x + ", " + e.target.y);


    }

    private function closePop():void {
        mm.popCont.removeChildAt(0);
    }

    private function panMap(m:MouseEvent):void
    {
        //click and drag to pan the minimap
        mm.startDrag();
        trace(mouseX+", "+mouseY);
        mm.addEventListener(MouseEvent.MOUSE_UP, relsMap, false, 0, true);
    }

    private function relsMap(m:MouseEvent):void
    {
        //drops the minimap
        mm.stopDrag();

    }'
exp.x = i * 0.5 + 1156;
exp.y = i*0.75 + 1651;