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
Actionscript 3 椋鸟不显示图形_Actionscript 3_Starling Framework - Fatal编程技术网

Actionscript 3 椋鸟不显示图形

Actionscript 3 椋鸟不显示图形,actionscript-3,starling-framework,Actionscript 3,Starling Framework,嗨,伙计们,我是AS3的新手,对Starling来说,我在显示不同班级的图片时遇到了问题。它确实显示在我的游戏菜单类,但我希望它显示在我的游戏类 所以我有三个主要的类来启动运行GameMenu类的椋鸟 游戏菜单类 包装{ import starling.display.BlendMode; import starling.display.Button; import starling.display.Image; import starling.display.Sprite; import st

嗨,伙计们,我是AS3的新手,对Starling来说,我在显示不同班级的图片时遇到了问题。它确实显示在我的游戏菜单类,但我希望它显示在我的游戏类

所以我有三个主要的类来启动运行GameMenu类的椋鸟

游戏菜单类 包装{

import starling.display.BlendMode;
import starling.display.Button;
import starling.display.Image;
import starling.display.Sprite;
import starling.events.Event;

public class GameMenu extends Sprite {

    private var bg:Image;
    private var gameLogo:Image;
    private var playBtn:Button;
    private var rankBtn:Button;
    private var settingBtn:Button;

    private var inGame:PlayGame;


    public function GameMenu ()
    {
        super ();

        this.addEventListener (Event.ADDED_TO_STAGE, onAddedToStage);
    }

    private function onAddedToStage (event:Event):void
    {
        this.removeEventListener (Event.ADDED_TO_STAGE, onAddedToStage);

        drawScreen ();
    }

    private function drawScreen ():void
    {
        bg = new Image(Assets.getAtlas().getTexture(("Background.png")));
        bg.blendMode = BlendMode.NONE;
        this.addChild(bg);

        gameLogo = new Image(Assets.getAtlas().getTexture(("GameLogo.png")));
        gameLogo.x = stage.stageWidth/2 - gameLogo.width/2;
        gameLogo.y = 30;
        this.addChild(gameLogo);

        playBtn = new Button(Assets.getAtlas().getTexture("PlayBtn.png"));
        playBtn.x = stage.stageWidth/2 - playBtn.width/2;
        playBtn.y = 450;
        playBtn.addEventListener(Event.TRIGGERED, onPlayClick);
        this.addChild(playBtn);

        rankBtn = new Button(Assets.getAtlas().getTexture("RankBtn.png"));
        rankBtn.x = rankBtn.bounds.left + 60;
        rankBtn.y = 600;
        rankBtn.addEventListener(Event.TRIGGERED, onRankClick);
        this.addChild(rankBtn);

        settingBtn = new Button(Assets.getAtlas().getTexture("SettingBtn.png"));
        settingBtn.x = settingBtn.bounds.right + 60;
        settingBtn.y = 600;
        settingBtn.addEventListener(Event.TRIGGERED, onSettingClick);
        this.addChild(settingBtn);

    }

    private function onRankClick (event:Event):void
    {
        trace("LEADERBOARD BUTTON HIT")
    }

    private function onSettingClick (event:Event):void
    {
        trace("SETTING SCREEN BUTTON HIT")
    }

    private function onPlayClick (event:Event):void
    {
        playBtn.removeEventListener(Event.TRIGGERED, onPlayClick);
        trace("PLAY BUTTON HIT")

        gameLogo.visible = false;
        playBtn.visible = false;
        rankBtn.visible = false;
        settingBtn.visible = false;
        //bg.visible = false;
        inGame = new PlayGame();
    }


}
}

这门课现在学得很好

游戏课

包装{

import starling.display.BlendMode;
import starling.display.Button;
import starling.display.Image;
import starling.display.Sprite;
import starling.events.Event;

public class GameMenu extends Sprite {

    private var bg:Image;
    private var gameLogo:Image;
    private var playBtn:Button;
    private var rankBtn:Button;
    private var settingBtn:Button;

    private var inGame:PlayGame;


    public function GameMenu ()
    {
        super ();

        this.addEventListener (Event.ADDED_TO_STAGE, onAddedToStage);
    }

    private function onAddedToStage (event:Event):void
    {
        this.removeEventListener (Event.ADDED_TO_STAGE, onAddedToStage);

        drawScreen ();
    }

    private function drawScreen ():void
    {
        bg = new Image(Assets.getAtlas().getTexture(("Background.png")));
        bg.blendMode = BlendMode.NONE;
        this.addChild(bg);

        gameLogo = new Image(Assets.getAtlas().getTexture(("GameLogo.png")));
        gameLogo.x = stage.stageWidth/2 - gameLogo.width/2;
        gameLogo.y = 30;
        this.addChild(gameLogo);

        playBtn = new Button(Assets.getAtlas().getTexture("PlayBtn.png"));
        playBtn.x = stage.stageWidth/2 - playBtn.width/2;
        playBtn.y = 450;
        playBtn.addEventListener(Event.TRIGGERED, onPlayClick);
        this.addChild(playBtn);

        rankBtn = new Button(Assets.getAtlas().getTexture("RankBtn.png"));
        rankBtn.x = rankBtn.bounds.left + 60;
        rankBtn.y = 600;
        rankBtn.addEventListener(Event.TRIGGERED, onRankClick);
        this.addChild(rankBtn);

        settingBtn = new Button(Assets.getAtlas().getTexture("SettingBtn.png"));
        settingBtn.x = settingBtn.bounds.right + 60;
        settingBtn.y = 600;
        settingBtn.addEventListener(Event.TRIGGERED, onSettingClick);
        this.addChild(settingBtn);

    }

    private function onRankClick (event:Event):void
    {
        trace("LEADERBOARD BUTTON HIT")
    }

    private function onSettingClick (event:Event):void
    {
        trace("SETTING SCREEN BUTTON HIT")
    }

    private function onPlayClick (event:Event):void
    {
        playBtn.removeEventListener(Event.TRIGGERED, onPlayClick);
        trace("PLAY BUTTON HIT")

        gameLogo.visible = false;
        playBtn.visible = false;
        rankBtn.visible = false;
        settingBtn.visible = false;
        //bg.visible = false;
        inGame = new PlayGame();
    }


}
import starling.display.Image;
import starling.display.Sprite;
import starling.events.Event;

public class PlayGame extends Sprite
{
    private var bubble:Image;

    public function PlayGame ()
    {
        trace("PlayGame");
        super ();

        this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage2);
    }

    private function onAddedToStage2 (event:Event):void
    {
        trace("OnAddedToStage");
        this.removeEventListener (Event.ADDED_TO_STAGE, onAddedToStage2);

        drawScreen ();
    }

    public function drawScreen ():void
    {
         trace("Bubble");
         bubble = new Image(Assets.getAtlas().getTexture(("Bubble.png")));
         bubble.x = 100;
         bubble.y = 100;
         this.addChild(bubble);
    }


}
}


气泡图像现在正在显示,我不知道为什么?

它们的括号太多了,但这不是你的问题

bubble = new Image(Assets.getAtlas().getTexture(("Bubble.png")));
//is less clean/readable than
bubble = new Image(Assets.getAtlas().getTexture("Bubble.png"));
当遇到此类问题时,如果starling/air未报告任何错误,则应尝试确保显示对象当前已渲染

尝试应用颜色而不是纹理

bubble = new Image( Texture.fromColor(64,64,0xff99ff) );
如果此代码显示64像素/边的奇特矩形,则麻烦来自纹理图集或纹理。确保有一个有效的图集,验证框架和名称

如果此代码未显示facy矩形,则您的问题不是来自纹理图集或纹理,而是更可能来自椋鸟的显示列表

对你来说, 我认为您只需要在GameMenu类中添加Ingame:

游戏菜单:

private function onPlayClick (event:Event):void
{
    //... your stuff
    inGame = new PlayGame();

    this.parent.addChild(inGame);
}
它应该是有效的