2013-07-08 44 views
1

即时通讯创建一个鱼缸..所以我想要做的是我的鱼应该是无限滚动..我使用动作脚本3..This是我使用的代码..但它不是工作..如何在动作脚本中创建一个无限的滚动动画script3

var scrollSpeed:uint = 5; 

//This adds two instances of the movie clip onto the stage. 



//This positions the second movieclip next to the first one. 
f1.x = 0; 
f2.x = f1.width; 

//Adds an event listener to the stage. 
stage.addEventListener(Event.ENTER_FRAME, moveScroll); 

//This function moves both the images to left. If the first and second 
//images goes pass the left stage boundary then it gets moved to 
//the other side of the stage. 
function moveScroll(e:Event):void{ 
f1.x -= scrollSpeed; 
f2.x -= scrollSpeed; 

if(f1.x < +f1.width){ 
f1.x = f1.width; 
}else if(f2.x < +f2.width){ 
f2.x = f2.width; 
} 
} 

f1和f2是我的鱼实例名称

+0

我有点困惑,你是否希望移动鱼到屏幕的另一边后,他们离开一边? – Glitcher

回答

1

你的问题线在底部。

if (f1.x < f1.width) { 
    f1.x = stage.stageWidth - f1.width // f1.width; 
} // Removed else 

if (f2.x < f2.width) { 
    f2.x = f1.width; 
} 
0

这是假定您的图片/ MC的是足够大的屏幕,并且是重复的(具有相同的内容)

function moveScroll(e:Event):void { 
    //position fish 1 
    f1.x -= scrollSpeed; 
    //when fish 1 is out of bounds (off the screen on the left, set it back to 0 
    if (f1.x < -f1.width) { 
     f1.x = 0; 
    } 
    //always position fish2 next to fish 1 
    f2.x = f1.x + f1.width; 
} 

另一种方法是将其放置在一个阵列和交换机在他们身边,如果他们不具有相同的内容:

//add fishes to array 
var images:Array = new Array(); 
images.push(f1, f2); 

function moveScroll(e:Event):void { 
    //position fish 1 
    images[0].x -= scrollSpeed; 
    //when first fish is out of bounds, remove it from the array (unshift) and add it at the end (push) 
    if (images[0].x < -images[0].width) { 
     images.push(images.unshift()) 
    } 
    //always position fish2 next to fish 1 
    images[1].x = images[0].x + images[0].width; 
} 

这些只是基本的例子,但你的想法

相关问题