将多个项目拖放到一个目标

时间:2016-12-07 01:54:46

标签: actionscript-3 drag-and-drop targets

我找到了一个swf文件来完成我想做的事情。所以我下载它并反编译它,这样我就可以学习如何正确地做到这一点。然后将其应用于我正在进行的工作。 应该有很多项目,个人将其拖放到正确的类别中。如果它被释放时是正确的,那么它就会停留,如果它会再次移动开始。What it looks like

我对原始文件进行了一些更改,因为它不起作用。您可以在(onClipEvent)中查看原始代码的位置。 我似乎修复了大多数问题,但我无法将拖动的项目释放到正确的位置。 我还为sprite添加了动作脚本。每个彩色三角形从左到右编号从1到5(希望这是正确的) 谢谢你的帮助。一个沮丧的科学老师。

public class GamePanel extends JPanel implements ActionListener
{
  private JButton greenButton;

  private JButton startButton;
  private JButton greenBlinkButton;
  private GridBagConstraints gbc;
  private Timer buttonTimer;

GamePanel()
{
    gbc = new GridBagConstraints();
    GridBagLayout grid = new GridBagLayout();
    setLayout(grid);

    //GridBag location lets
    startButton = new JButton("Start");
    gbc.gridx = 0;
    gbc.gridy = 0;
    add(startButton, gbc);
    startButton.setPreferredSize(new Dimension(200,30));

    greenReg = new ImageIcon("src/Images/Green Button.png");
    greenBlink = new ImageIcon("src/Images/Blink Green Button.png");

    greenButton = new JButton(new ImageIcon(greenReg));

    gbc.gridx = 0;
    gbc.gridy = 1;
    add(greenButton, gbc);
    add(greenBlinkButton, gbc);


    startButton.addActionListener(this);


   //Timer
  buttonTimer = new Timer(500, this);

}

@Override
    public void actionPerformed(ActionEvent e) 
    {    

     if(e.getSource() == startButton )
     {

         greenButton.setIcon(greenBlink); 
         buttonTimer.start();
         greenButton.setIcon(greenReg); 
     }
    }

2 个答案:

答案 0 :(得分:0)

//on (release)
this.addEventListener(MouseEvent.MOUSE_UP, relea);
function relea(event:Event){

应该是

//on (release)
this.addEventListener(MouseEvent.MOUSE_UP, relea);
function relea(event:MouseEvent){ // **** MouseEvent, not Event
你知道吗?您告诉relea函数预期Event。应该期待MouseEvent。这样可以解决吗?

答案 1 :(得分:0)

感谢您的帮助,我发现这个问题的答案是我最终在精灵动作框架和主时间线动作框架中放置相同的代码,它应该只在精灵中。