PDA

Просмотр полной версии : Проблема с нормальной работой c hitTest


SobakaWWW
22.01.2007, 18:27
:( Пиветствую, народ ))

ТУт решил на флеше попрактиковаться, но вот какая проблема возникла, нигде ответов не нашёл :
После небольшого изучение, решил сделать пример из статьи... ПРимер прост, есть три объекта, если двое из них сталкиваются , то один из них перекидывается на координаты третьего, вот код :
// Статический объект fun1
onClipEvent (enterFrame) {
if (_root.character.hitTest (this)) {
_root.addToslot (this);
}
}

//Внутри управляемого объекта
onClipEvent (load) {
moveSpeed = 19;
}
onClipEvent (enterFrame) {
if (Key.isDown (Key.RIGHT)) {
this._x += moveSpeed;
} else if (Key.isDown (Key.UP)) {
this._y -= moveSpeed;
} else if (Key.isDown (Key.DOWN)) {
this._y += moveSpeed;
} else if (Key.isDown (Key.LEFT)) {
this._x -= moveSpeed;
}
}

//Во фрейме
currentslotnum = 1;
stop ();
function addToslot (item) {
item._x+=2;
if (!item.found) {
item._x = eval ("itemSlot" + currentslotnum)._x;
item._y = eval ("itemSlot" + currentslotnum)._y;
item.found = true;
....
[iNils: Для оформления своего кода, надо использовать теги ]

Я понял, что у меня не срабатывает проверка if (_root.character.hitTest (this)) , хотя объекты друг на друге находятся, не подскажете, в чем дело ?))))

CorC
22.01.2007, 18:58
а InstanceName "character" не забыл присвоить управляемому клипу?
З.Ы.: РПГ пишешь или как?

SobakaWWW
22.01.2007, 19:29
Ну типа того )
А энто я не забыл, прописал, не помогло ((((

CorC
22.01.2007, 19:41
а ты проверь в том fun1

trace(_root.character._name)

он вообще есть?
и вообще попробуй так подебагить, если что присылай упрощенный исходник...

а так по коду вроде б верно

SobakaWWW
22.01.2007, 20:42
Хех, говорит undefited... но в линках я пометил и назвал его (названия совпадают , в трейсе правильно написано )... (((((

Mr. Fixit
23.01.2007, 03:20
ты не в линках пиши, а в инстанс нейм, который(да-да) в Properties.
В linkage тебе не надо писать, так как ты не аттачишь..
Я код свой? ;)

Kikasso
23.01.2007, 04:15
Control -> test Movie -> debug -> list Variables
или
for (var p in _root)trace(p+"::"+_root[p]);

CorC
23.01.2007, 10:19
а InstanceName "character" не забыл присвоить управляемому клипу?
видимо все-таки вы это забыли сделать...
щелкаешь по муву
идешь в properties
в поле InstanceName ставишь character

SobakaWWW
23.01.2007, 13:36
мм, да нет, всё так.. вот вид пропитиесов в прилагаемой картинке )

CorC
23.01.2007, 13:43
мда...
не в этих properties
где ты здесь видишь InstanceName поле?
когда мув вытаскиваешь на раб стол
идешь вниз страницы, там панель: properties
или Сtrl+F3

SobakaWWW
23.01.2007, 14:00
:rolleyes: Йеёёёё...
Огромное спасибо !))

CorC
23.01.2007, 14:08
заработало что ли? :) ну надо же!
потом как все доделаешь, кинь линк мне в личку потом :)