使用代码将库中的符号添加到舞台

时间:2014-01-26 02:27:11

标签: actionscript-3 stage

我是编码的新手,不幸的是我的老师比老师更程序化,所以他对如何做事非常模糊。我的目标是简单的我有一个符号来自我的库直接拖放在舞台上作为我的背景和背景对象的代码我试图添加一个小箭头的菜单选择器,你移动与鼠标键。我知道它很简单,我不理解,所以如果有人能提供帮助那就太棒了!

package 
{

import flash.display.MovieClip;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.events.Event;


public class BG extends MovieClip
{

    public var select:Select = new Select ;


    public function BG()
    {
        // constructor code
        addEventListener(Event.ADDED_TO_STAGE, addedToStage);

        addChild(select);
        select.x = 200;
        select.y = 200;
    }

    private function addedToStage(ev:Event):void
    {
        removeEventListener(Event.ADDED_TO_STAGE, addedToStage);
        addEventListener(Event.REMOVED_FROM_STAGE, removedFromStage);
        stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
    }

    private function keyDownHandler(ev:KeyboardEvent):void
    {
        if (event.keyCode == Keyboard.DOWN)
        {
            select.y = 250;
        }
        if (event.keyCode == Keyboard.UP)
        {
            select.y = 200;
        }
    }

    private function removedFromStage(ev:Event):void
    {
        removeEventListener(Event.REMOVED_FROM_STAGE, removedFromStage);
        stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
    }
}
}  

1 个答案:

答案 0 :(得分:0)

当您测试电影时,您应该收到如下错误消息:

BG.as,Line 34 1120:访问未定义的属性事件。

这些错误可以让你明白出现了什么问题。在这种情况下,它告诉你没有名为“event”的属性。在keyDownHandler函数中,您需要将“event”替换为“ev”,这是您在函数声明中命名KeyboardEvent的内容。所以这应该使你的代码工作:

if (ev.keyCode == Keyboard.DOWN)
    {
        select.y = 250;
    }
if (ev.keyCode == Keyboard.UP)
    {
        select.y = 200;
}

此外,您应该在创建对象实例时使用括号。即使它仍然编译,你应该写:

public var select:Select = new Select();