Masks
package { import flash.display.*; import flash.events.Event; public class Main extends Sprite { private var circle:Shape; private var vBox:Shape; private var up:Boolean = false; public function Main() { super(); stage.scaleMode = "noScale"; circle = new Shape(); circle.graphics.beginFill(0xFF6600, 1); circle.graphics.drawCircle(250, 250, 250); vBox = new Shape(); vBox.graphics.beginFill(0x000000, 1); vBox.graphics.drawRect(0, 0, 1000, 20); circle.mask = vBox; addChild(vBox); addChild(circle); addEventListener(Event.ENTER_FRAME, scrollVertBox); } private function scrollVertBox(event:Event):void { if(up) { vBox.y -= 2; } else { vBox.y += 2; } if(vBox.y > 520) { up = true; } if(vBox.y < 0) { up = true; } } } }