 			if (!hitObject) {
 				return null;
 			}
-			for each (var partPlayer:SSSPartPlayer in this.parts) {
+			for each (var partPlayer:SSSPartPlayer in this._partPlayers) {
 				if (hitObject.parent == partPlayer) {
 					return partPlayer;
 				}


		private function prepareChildren():void {
			this.removeChildren();
			this.parts = new Vector.<SSSPartPlayer>();
			for each (var part:SSSPart in this.model.parts) {
				var partAnime:SSSPartAnime = this._anime.partAnimes[part.name];
				var parentPartPlayer:SSSPartPlayer = null;
				if (part.parentIndex > -1) {
					parentPartPlayer = this.parts[part.parentIndex];
				}
				var partPlayer:SSSPartPlayer = new SSSPartPlayer(this.project, this.model, part, partAnime, parentPartPlayer);
				this.addChild(partPlayer);
				this.parts.push(partPlayer);
			}
		}

		private function updateParts():void {
			for each (var partPlayer:SSSPartPlayer in this.parts) {
				partPlayer.currentFrame = this._currentFrame;
			}
			if (this._withFlatten) {

			this.updateParts();
		}

		private var _partPlayers:Vector.<SSSPartPlayer>;
		public function get partPlayers():Vector.<SSSPartPlayer> {
			return this._partPlayers.concat();
		}

		private var _isPlaying:Boolean = false;
		public function get isPlaying():Boolean {
