Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > ActionScript 1,2 > не работает событие onRollOver


Автор: 4epT 21.3.2011, 15:31
Здравствуйте! Столкнулся с небольшой проблемой ... подскажите как можно это исправить ?

У меня есть такая функция:
Код

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 {

}
if(objNEW.ssil){
container.loadMovie(objNEW.ssil)}
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 закрыли
};


Такой вопрос тут не работает событие onRollOver, а если быть точнее оно работает, но совершенно не так, как нужно, сам код:

Код

mc.onRollOver = function(){
this._xscale=this._yscale = 120;
trace(url)
trace(type)
}
mc.onRollOut = function(){
this._xscale=this._yscale = 100;
}


А работает он по типу навёл сюда, а оно улетает на пикселей этак 20 куда то вправо вниз. Но если туда не грузить клип. Как я это делаю тут:

Код

if(objNEW.ssil){
container.loadMovie(objNEW.ssil)}
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;
}

}


То всё работает как надо. При наведении мыши оно увеличивается пропорционально и по средине.

И второй вопрос почему у меня вписывается только последняя ссылка сюда:

Код

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"
}


XML выглядит так:
Код

<?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">
<onpress>http://www.afd.org.ua</onpress>
</obj>
<obj id="2" type="town" posX="120" posY="340" vis="true" acti="true" ssil="2.jpg">
<onpress>http://www.flasher.ru</onpress>
</obj>
<obj id="3" type="town" posX="300" posY="470" vis="true" acti="true" ssil="3.jpg">
<onpress>http://www.habrahabr.ru</onpress>
</obj>
<obj id="3" type="megapolis" posX="40" posY="340" vis="true" acti="true">
<onpress>http://www.afd.org.ua</onpress>
</obj>
<obj id="1" type="town" posX="500" posY="310" vis="true" acti="true" ssil="2.jpg">
<onpress>http://www.afd.org.ua</onpress>
</obj>
<obj id="1" type="sity" posX="550" posY="540" vis="true" acti="true" ssil="1.jpg">
<onpress>false</onpress>
</obj>
<obj id="1" type="town" posX="300" posY="290" vis="true" acti="true" ssil="3.jpg">
<onpress>http://www.afd.org.ua</onpress>
</obj>
</object>
</gallery>
</data>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)