AS3疯狂下拉菜单紧张问题

时间:2011-10-03 06:30:40

标签: flash actionscript-3 drop-down-menu

我的网站上有一些闪存错误。我开始玩AS3并创建了一个列表,当鼠标结束时会扩展,当鼠标移出时会关闭。有点像下拉菜单。问题有时它真的很痉挛。有人有任何解决方案吗?

这是我的网站...... www.allencoded.com

下面是我的代码..

import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
import flash.events.Event;
import flash.ui.Mouse;
import flash.net.URLRequest;

stop();

FeedBox.mouseChildren=false;
ProjectBox.mouseChildren=false;

//FeedBox Tween Stuff----------------------
var feedup:Tween = new Tween(FeedBox, "y", Strong.easeOut, 560, 290, 2, true);
var feeddown:Tween = new Tween(FeedBox, "y", Strong.easeOut, 290, 560, 2, true);
FeedBox.addEventListener(MouseEvent.MOUSE_OVER, mouseyOnFeed);
FeedBox.addEventListener(MouseEvent.MOUSE_OUT, mouseyOutBox);

function mouseyOnFeed(e:Event){
    feedup.start();
}

function mouseyOutBox(e:Event){
    feeddown.start();
}


//ProjectBox Tween stuff------------------------

var projectleft:Tween = new Tween(ProjectBox, "x", Strong.easeOut, 920, 565, 2, true);
var projectright:Tween = new Tween(ProjectBox, "x", Strong.easeOut, 565, 920, 2, true);

ProjectBox.addEventListener(MouseEvent.MOUSE_OVER, mouseyOnProj);
ProjectBox.addEventListener(MouseEvent.MOUSE_OUT, mouseyOutProj);

function mouseyOnProj(e:Event){
    projectleft.start();
}

function mouseyOutProj(e:Event){
    projectright.start();
}

//BLOG BUTTON
Blog.addEventListener(MouseEvent.CLICK, toBlog);
function toBlog(e:Event){
    var blogaddy:URLRequest = new URLRequest("http://www.allencoded.com/blog");
    navigateToURL(blogaddy);
}

2 个答案:

答案 0 :(得分:1)

function mouseyOnProj(e:Event){
  projectleft.start();
  ProjectBox.removeEventListener(MouseEvent.MOUSE_OVER, mouseyOnProj);
}

function mouseyOutProj(e:Event){
  projectright.start();
  ProjectBox.removeEventListener(MouseEvent.MOUSE_OUT, mouseyOutProj);
}

我希望在补间和onCompletes addEventListeners时删除事件。通过源代码推销器可以更好地实现补间。

再次询问您是否需要更多信息。

答案 1 :(得分:0)

当标签到达鼠标光标时,似乎发生了问题,导致鼠标在完成移动之前输入。尝试

function mouseyOnProj(e:Event){
    if (!projectleft.isPlaying) projectleft.start();//
}

function mouseyOutProj(e:Event){
    if (!projectright.isPlaying) projectright.start();//
}