|
|
|||||
Регистрация: Dec 2010
Сообщений: 37
|
onRollOver не правильно работает
Такой вопрос:
var mc:MovieClip = _root.createEmptyMovieClip("mc"+i, _root.getNextHighestDepth()); var container:MovieClip = mc.createEmptyMovieClip("container"+i, 0); Это всё работает нормально. Но после того как я накладываю на верхний Клип простой обработчик onRollOver - он начинает летать по всему экрану ну, а точнее навожу на него и он начинает прыгать с того места куда навел на новое место чуть ниже. Потом срабатывает onRollOut и он возвращается на место, но там курсор и он опять прыгает (ну в общем вы поняли). Обработчик: mc.onRollOver = function(){ this._xscale=this._yscale = 101; } mc.onRollOut = function(){ this._xscale=this._yscale = 100; } <?xml version="1.0" encoding="UTF-8"?> <data> <gallery> <object name="1"> <obj id="1" type="town" posX="170" posY="240" vis="true" acti="true" ssil="1.jpg" sobONPRESS="http://www.afd.org.ua" /> <obj id="2" type="town" posX="120" posY="340" vis="true" acti="true" ssil="2.jpg" sobONPRESS="http://www.flasher.ru" /> <obj id="3" type="town" posX="300" posY="470" vis="true" acti="s" ssil="3.jpg" sobONPRESS="http://www.habrahabr.ru" /> </object> </gallery> </data> |
|
|||||
Модрон-ветеринар
|
Возможно дело не в этом, но:
Для загрузки необходимо использовать MovieClipLoader, и задавать обработчики типа onRollOver, дожидаясь процесса загрузки, то есть внутри обработчика onLoadInit. Перепишите всё на MCL, с laodMovie у вас будут множественные проблемы.
__________________
Идите первым! |
|
|||||
[+6 09.06.11]
Регистрация: May 2007
Сообщений: 721
|
наверно дело в том, о чем Вам сказал mooncar, потому что нужно сперва дожидаться загрузки, а потом уже вешать все события
|
|
|||||
Регистрация: Dec 2010
Сообщений: 37
|
Ну видоизменил функцию:
if(objNEW.ssil){ var mcLoader:MovieClipLoader = new MovieClipLoader(); mcLoader.loadClip(objNEW.ssil, container) trace('s') } Добавлено через 2 минуты Извините, а как будет это выглядеть ориентируясь на мой код ? Подскажите пожалуйста! |
|
|||||
Регистрация: Dec 2010
Сообщений: 37
|
Цитата:
|
|
|||||
Модрон-ветеринар
|
Tails, не путай человека! onLoad - это из другой оперы. Я же указывал, какое событие нужно слушать. Вам оставалось только открыть хелп и посмотреть пример.
Видоизмененный пример из хелпа: this.createEmptyMovieClip('image_mc', this.getNextHighestDepth()); var mclListener:Object = new Object(); mclListener.onLoadInit = function(target_mc:MovieClip) { target_mc.onRollOver = //(тут ваш обработчик) }; var image_mcl:MovieClipLoader = new MovieClipLoader(); image_mcl.addListener(mclListener); image_mcl.loadClip('http://www.helpexamples.com/flash/images/image1.jpg', image_mc);
__________________
Идите первым! |
|
|||||
Регистрация: Dec 2010
Сообщений: 37
|
_root.createEmptyMovieClip('image_mc', _root.getNextHighestDepth()); var mclListener:Object = new Object(); mclListener.onLoadInit = function(target_mc:MovieClip) { target_mc.onRollOver = function () { this._xscale=this._yscale = 120; } target_mc.onRollOut = function () { this._xscale=this._yscale = 100; } target_mc._x=objNEW.posX; target_mc._y=objNEW.posY; }; var image_mcl:MovieClipLoader = new MovieClipLoader(); image_mcl.addListener(mclListener); image_mcl.loadClip(objNEW.ssil, image_mc); Добавлено через 1 минуту И масштабирование всё равно не от центра происходит |
|
|||||
Модрон-ветеринар
|
Создавать мувики и loadClip в цикле нужно. A MCL, слушатель и обработчик onLoadInit - хватит по одному.
Нечто похожее http://www.flasher.ru/forum/showpost...01&postcount=5 Добейтесь с начала благополучной загрузки, а потом с рескейлом разбираться будете. Посмотрите там в теме, ниже я вроде пример тоже выкладывал.
__________________
Идите первым! Последний раз редактировалось mooncar; 21.03.2011 в 17:49. |
|
|||||
Регистрация: Dec 2010
Сообщений: 37
|
Цитата:
data_xml = new XML(); data_xml.ignoreWhite = true; data_xml.load("data.xml"); data_xml.onLoad = function() { colXML = data_xml.childNodes[0].childNodes[0].childNodes[0].childNodes.length; for(i=0; i<colXML; i++){ var mc:MovieClip = _root.createEmptyMovieClip("mc"+i, _root.getNextHighestDepth()); if(data_xml.childNodes[0].childNodes[0].childNodes[0].childNodes[i].childNodes[0].firstChild!="false"){ url = data_xml.childNodes[0].childNodes[0].childNodes[0].childNodes[i].childNodes[0].firstChild //trace("DA") }else{ trace("NO") //url = "NO" } objNEW = data_xml.childNodes[0].childNodes[0].childNodes[0].childNodes[i].attributes; var container:MovieClip = mc.createEmptyMovieClip("container"+i, 0); objname="newItem"+i; ID1 = objNEW.id container._x=objNEW.posX; container._y=objNEW.posY; var type:String = objNEW.type var visi:String = objNEW.vis; if(visi=="true") { container._alpha = 100; }else{ container._alpha = 0; } // end if var acti:String = objNEW.acti; if(acti=="true") { mc.onRollOver = function(){ this._xscale=this._yscale = 120; trace(url) trace(type) } mc.onRollOut = function(){ this._xscale=this._yscale = 100; } }else { } //container.loadMovie(objNEW.ssil); mc.createEmptyMovieClip('image_mc', _root.getNextHighestDepth()); if(objNEW.ssil){ var mclListener:Object = new Object(); mclListener.onLoadInit = function(target_mc:MovieClip) { target_mc.onRollOver = function () { this._xscale=this._xscale = 120; this._yscale=this._yscale = 120; } target_mc.onRollOut = function () { this._xscale=this._yscale = 100; } target_mc._x=objNEW.posX; target_mc._y=objNEW.posY; }; var image_mcl:MovieClipLoader = new MovieClipLoader(); image_mcl.addListener(mclListener); image_mcl.loadClip(objNEW.ssil, image_mc); trace(container) } else{ container=_root.attachMovie("ID"+ID1, objname, _root.getNextHighestDepth()); container._x=objNEW.posX; container._y=objNEW.posY; container.onRollOver = function(){ this._xscale=this._yscale = 120; } container.onRollOut = function(){ this._xscale=this._yscale = 100; } } } // for закрыли } |
Часовой пояс GMT +4, время: 13:40. |
|
« Предыдущая тема | Следующая тема » |
|
|