有没有一种方法可以在AS3中设置场景,而无需使用Flash?基本上,当有人点击一个按钮,我想呈现一个完全不同的屏幕。现在,如果我试图绘制一个位图,位图开始于按钮的左上角,而不是程序显示的左上角。
使用Flash很容易,您只需使用gotoAndPlay(1,场景名称)。但是,我希望这个程序完全在AS3中而不使用Flash。
有什么建议吗?
发布于 2014-03-02 23:47:28
您必须创建表示场景的类的集合。这也涉及到某种类型的基础来运行您的场景之上,管理加载和卸载这些场景及其内容。
在一个简单的场景中,这将从以下几个方面开始:
class SceneManager extends Sprite
{
private var _currentScene:Scene;
public function loadScene(scene:Scene):void
{
unloadCurrentScene();
_currentScene = scene;
_currentScene.load(this);
addChild(_currentScene.view);
}
public function unloadCurrentScene():void
{
if(hasScene)
{
_currentScene.unload(this);
_currentScene.view.parent === this && removeChild(_currentScene.view);
}
_currentScene = null;
}
public function get currentScene():Scene{ return _currentScene; }
public function get hasScene():Boolean{ return _currentScene !== null; }
}使用Scene类:
class Scene
{
private var _view:Sprite;
public function Scene()
{
_view = new Sprite();
}
public function load(sceneManager:SceneManager):void
{
// Abstract.
// Load children, initialize components, etc.
}
public function unload(sceneManager:SceneManager):void
{
// Abstract.
// Remove children, event listeners, references, etc.
}
public function get view():Sprite{ return _view; }
}使用like (假设您有一个类MainMenuScene扩展Scene):
var sceneManager:SceneManager = new SceneManager();
addChild(sceneManager);
sceneManager.loadScene( new MainMenuScene() );https://stackoverflow.com/questions/22134966
复制相似问题