影片剪辑重叠影片剪辑

2023-09-08 15:04:36 作者:你近在咫尺,却远若天边

我一直在学习AS3约2周

我试图使个人使用组合发生器

的问题是,如果在阵列内的相同的MovieClip显示两次或更多次,它只是overlapps它

有关时显示肘部第二次的例子,它只是重叠第一肘影片剪辑! http://imageshack.us/scaled/landing/208/17797019.png

下面是我的code

  VAR打孔:打孔=新冲床();
VAR踢:踢=新踢();
VAR膝:膝关节=新拐点();
VAR弯头:弯头=新弯头();
VAR持有人:影片剪辑; //用于显示目的
VAR位置:数= 100;

公共函数main()
{
    VAR组合:数组= [一拳,踢,膝,肘]。
    对于(VAR我:数量= 0;我2;我++)
    {
        支架=组合[randomNumber()]
        holder.y = 200;
        holder.x =位置;
        的addChild(保持器);
        位置=位置+ 100;
    }


}
功能randomNumber():数
{
    返程(Math.floor(的Math.random()*(4  -  1)+1));
}
 
电影剪辑的魔力,PR剪辑高级教程 分分钟剪辑出大片

解决方案

试着改变你的code是这样的:

 公共函数main()
{
    VAR组合:数组= [打孔,踢,膝,肘]。
    对于(VAR我:数量= 0;我2;我++)
    {
        VAR运动:影片剪辑=新组合[randomNumber()();
        motion.y = 200;
        motion.x = I * 100;
        的addChild(运动);
    }
}
功能randomNumber():数
{
    返程(Math.floor(的Math.random()*(4  -  1)+1));
}
 

I've been learning as3 for about 2 weeks

I'm trying to make a combo generator for personal uses

The problem is that if the same MovieClip inside the array is displayed twice or more it just overlapps it.

for example when the elbow is displayed a second time ,it just overlaps the 1st elbow movieclip! http://imageshack.us/scaled/landing/208/17797019.png

Here's my code

var punch:Punch = new Punch();
var kick:Kick = new Kick();
var knee:Knee = new Knee();
var elbow:Elbow = new Elbow();
var holder:MovieClip; // for displaying purposes 
var position:Number = 100;

public function Main()
{
    var combo:Array = [punch, kick, knee, elbow];
    for(var i:Number = 0;i < 2;i++ )
    {
        holder = combo[randomNumber()]
        holder.y = 200;
        holder.x = position;        
        addChild(holder);
        position = position + 100;
    }


}
function randomNumber():Number
{
    return(Math.floor(Math.random() * (4 - 1 )+1));
}

解决方案

Try to change your code like this:

public function Main()
{
    var combo:Array = [Punch, Kick, Knee, Elbow];
    for(var i:Number = 0;i < 2;i++ )
    {
        var motion:MovieClip = new combo[randomNumber()]();           
        motion.y = 200;
        motion.x = i*100;        
        addChild(motion);
    }    
}
function randomNumber():Number
{
    return(Math.floor(Math.random() * (4 - 1 )+1));
}