ДействиеСценарий / Говнокод #1860 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
function upHandler(event:MouseEvent):void 
{
        //r_arr[event.currentTarget.index].stopDrag();
				
	event.currentTarget.stopDrag();
				
        //r_arr[event.currentTarget.index].removeChildAt(2);

	if((r_arr[event.currentTarget.index].x>550)||(r_arr[event.currentTarget.index].x<160)||(r_arr[event.currentTarget.index].y>400)||(r_arr[event.currentTarget.index].y<0))
	{
	        r_arr[event.currentTarget.index].x=546;
		r_arr[event.currentTarget.index].y=(r_arr[event.currentTarget.index].index+1)*30;
	}
}

Сама семантика малопримечательна. Вся соль в способе адресации к объекту массива r_arr при совершении события мыши прямо над этим же объектом. Методы и свойства объекта достаются через ***у по индексу из-за пазухи: r_arr[event.currentTarget.index].removeChildAt(2)
вместо достаточного: event.currentTarget.removeChildAt(2)

Запостил: t8apb t8apb, (Updated )

Комментарии (1) RSS

  • Ваши знания ас3 чуть больше автора этого кода. event.currentTarget имеет тип Object, у которого нет никакого метода removeChildAt(), который есть у DisplayObjectContainer-a, а значит компилятор вам намекнет на это, конечно если вы не выключили сообщения об ошибках. Правильнее сделать var doc:DisplayObjectContainer = event.currentTarget as DisplayObjectContainer; if (doc) doc.removeChildAt(2)
    Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8