всё true выдаёт.? ну если у тебя битмапы в мувиклипе то да. эх.
ИПавлов
> всё true выдаёт.? ну если у тебя битмапы в мувиклипе то да. эх.
В последнем случае всегда false))) То-то и оно что в клипе лежит коллекция PNG, покадровая анимация так сказать.
Я хз что делать. Я переписываю движок, раньше он у них работал на основании полей (то есть наводить надо было не на объект, а на поле на котором стоит объект), вот теперь захотели чтобы было наведение на объект. А тут такое. Что можно сделать?
сами по себе мувиклипы это беда. обычно лучше битмап - и кучка битмапДат. и переключаться между ними. и тогда можно будет опятьже на гет пиксель.
ИПавлов
> сами по себе мувиклипы это беда. обычно лучше битмап - и кучка битмапДат. и переключаться между ними. и тогда можно будет опятьже на гет пиксель.
Но переделывать всю графику точно никто не будет. Может можно как-то обойти? Например в MovieClip получить текущую отображаемую Bitmap и проверить её? Я сейчас у художника спросил, который делал все эти SWF с покадровой анимацией и понял что там всё состоит из PNG (правда лишь в некоторых используется слой эффектов, но думаю на него можно забить при наведении).
ну я обычно просто вся сохраняю в векторы.<битмапдаты> и оттуда уже использую, как хочу.
могу и заливку сделать битмапой.
тобишь берёшь свой мувиклип, сохраняешь покадрово в даты. и всё.
выглядит так.
for(i=0;i<11;i++) { FIR1.gotoAndStop( i+3); EXPBITS[i]=new BitmapData( FIR1.width,FIR1.height,false,0x00); EXPBITS[i].draw( FIR1); }
это у меня типо спрайты огня...взрыва. в общем чтото там всё.
ИПавлов
Надеюсь totalFrames и currentFrame сработают верно)
в битмапы всё сохраняется на этапе загрузки. а потом работа только с ними.
ИПавлов
Сейчас реализую. Однако я думаю это не решит моей второй проблемы))))
ИПавлов
Огромное спасибо! Сделал так:
Ну и обработка:
Теперь наводится как и положено. А вот вторая проблема актуальна:
Курсор на дереве, но дерево но подсвечивается, так как Flash считает что мы бродим по клипу сундука. Что делать?
Можно ли как-то сделать так, чтобы когда я определил что навели на прозрачный пиксель, то я как-то отменяю что ли событие и оно ищет куда я дальше попал?
Ладно, сделал)
Есть вопрос. Представим что мы делаем так:
for(var i:uint=0;i<movieClip.totalFrames;i++) { movieClip.gotoAndStop( i); var bitmapData:BitmapData=new BitmapData( movieClip.width,movieClip.height,true,0x000000); bitmapData.draw( movieClip); bitmapsData.push( bitmapData); } movieClip.gotoAndStop( 0);
А если в кадре 6 клипа есть скрипт gotoAndStop(8), то что, я кадр 6 не смог скопировать? Или команда gotoAndStop() запрещает выполнения и скрипта?
для начала - хрен знает
во вторых - код в кадрах клипа это маразм. и уже давно нормальные люди не ипользуют
в третих переход из 6 кадра вдруг в другой кадр...тоже непонятно зачем. почему сразу не на 8
ну и в четрвёртых конечно 0 кадра нету
и в пятых. uint медленнее, чем int
ИПавлов
Спс, замечания учту и исправлю. В остальном всё сделал и всё работает. Огромное тебе спасибо))))))
Почему бы просто не использовать hitArea у MovieClip'а? Ну да художников надо было бы завтравить обвести спрайты, но это занимает 10-15 сек...
Тема в архиве.