2013-12-03 2 views
0
private function DropFunc (e:MouseEvent):void 

    { 

     if(e.currentTarget.hitTestObject(Object (e.currentTarget + "Target"))) 
     { 
      trace("good") 
     } 
     else{ 

     e.currentTarget.x = startPosX; 
     e.currentTarget.y = startPosY; 
     e.currentTarget.stopDrag(); 
     } 

    } 

Мне нужно вызвать объект с именем currentTarget + Target в hittest object, что мне делать?Как вызвать имя экземпляра объектов со строкой? as3

Я новичок ... извините за глупый вопрос: X

ответ

1

Если я правильно понял ваш образец вопрос/код правильно, вы пытаетесь динамически получить доступ к экземпляру по имени.

Вместо того, чтобы пытаться бросить его как Object, вы должны получить доступ к нему как свойство родителя:

private function DropFunc (e:MouseEvent):void 
{ 

    if(e.currentTarget.hitTestObject(this[e.currentTarget.name + "Target"])) 
    { 
     trace("good") 
    } 
    else{ 

    e.currentTarget.x = startPosX; 
    e.currentTarget.y = startPosY; 
    e.currentTarget.stopDrag(); 
    } 

} 

В приведенном выше примере предполагается, что this является родителем объекта с именем экземпляра e.currentTarget.name + "Target".

+0

Я пробовал то, что вы сказали, но вот ошибка: Свойство [объект MovieClip] Цель не найдена на Stage_30, и значение по умолчанию отсутствует. на Stage_30/DropFunc(), Возможно, это потому, что на сцене ничего нет, я называю это классом. (Они только в библиотеке) –

+0

Прошу прощения за мой недосмотр. Вы хотели бы ссылаться на имя 'currentTarget'. Я сделал обновление для кода выше. – Marcela

+0

Спасибо, я полагаю, что это работает, но существует еще одна проблема, ReferenceError: Ошибка # 1069: свойство park_mc.NoFishing_mcTarget не найдено на Stage_30, и значение по умолчанию отсутствует. \t на Stage_30/DropFunc() <<< он не может найти этот мувиклип на сцене, я уверен, что NoFishing_mcTarget существует в park_mc (обратите внимание, что park_mc не находится на сцене ... как я могу позволить ему увидеть его ?)... Что мне теперь делать ? –

0

Вы можете вызвать свойство объекта со строкой следующим образом.

objectInstance["property"].

Смежные вопросы