如何制作可点击的动画片段'隐藏'在另一个对象后面例如..我有一个兔子电影剪辑 - 他是可点击的 - 当他走在一棵树(MC)后面时,他需要躲在那棵树后面。
此刻,如果我点击树 - 鼠标点击似乎完全忽略了树,我仍然可以点击看不见的兔子。
-(int) getRandomValueBetween:(int)lowerBound and:(int)upperBound
{
int rndValue = lowerBound + arc4random() % (upperBound - lowerBound);
return rndValue;
}
我尝试将其添加到树mc中,以查看当它移动到树上时是否可以杀死鼠标。
import java.sql.*;
public class UpdateCar {
public static void updateCarNum (int carNo, int empNo)
throws SQLException {
Connection con=null;
PreparedStatement pstmt=null;
try {
con = DriverManager.getConnection(
"jdbc:default:connection");
pstmt= con.prepareStatement("UPDATE EMPLOYEES " +
"SET CAR_NUMBER = ? " +
"WHERE EMPLOYEE_NUMBER = " + empNo);
pstmt.setInt(2, empNo);
pstmt.executeUpdate();
}
finally {
if (pstmt != null) pstmt.close();
}
}
}
但是,它并不理想。如果它落在舞台上的另一个对象后面,我真的需要一个可点击的对象来隐藏它。因此,如果他被隐藏了一半,我点击仍然显示的MC的部分,它将点击..它没有工作。
答案 0 :(得分:1)
首先,不需要使用hitTest代码来确定点击的内容。您可以使用鼠标事件的.target
属性来解决这个问题 - 这也将解决您知道树被点击还是兔子的问题。
例如:
function clickHandler(event:MouseEvent):void {
if (event.target == RabbitG1_mc){
//.....do you stuff
if (event.target == RabbitG2_mc){
现在,有一点需要指出的是,事件的.target
也可能是兔子的子对象(如果你的兔子MC里面有其他物体)。所以为了确保它是一致的,你可以在初始化兔子时做这样的事情:
RabbitG1_mc.mouseChildren = false;
RabbitG2_mc.mouseChildren = false;
或者,您可以直接向兔子添加鼠标事件侦听器,而不是在舞台上添加一个可以捕获所有内容的侦听器。这样,如果对象(树)位于它们前面(并且启用了鼠标),则click事件将在树上而不是兔子上发送,并且clickHandler
不会运行。
RabbitG1_mc.addEventListener(MouseEvent.CLICK, clickHandler);
RabbitG2_mc.addEventListener(MouseEvent.CLICK, clickHandler);
function clickHandler(event:MouseEvent):void {
//event.currentTarget is a reference to what you attached the listener to
switch(event.currrentTarget){
case RabbitG1_mc:
//..do your code
break;
case RabbitG2_mc:
//..do your code
break;
}
}