Просмотр полной версии : У аттаченого мувика на задаются координаты
Здравствуйте.
Почему, когда я делаю
_root.attachMovie("hint", "shopHint_mc", this.getNextHighestDepth(), {x:_xmouse+20, y:_ymouse+20});
мувику shopHint_mc не присваиваются координаты мыши + 20 ? Мовук аттачится в 0, 0
и так и так пробовал... вот весь код
stop();
//
var etazh = 1;
var option = buy;
var count = 29;
//==============================================================
// Here we load xml.
mapXML = new XML();
mapXML.load("flashMap.xml");
mapXML.ignoreWhite = true;
mapXML.onLoad = is_loaded;
function is_loaded(success) {
if (success) {
createMap();
}
}
//==============================================================
function createMap() {
var countOption = mapXML.childNodes[0].childNodes.length;
//trace(countOption);
for (var i = 0; i<countOption; i++) {
var mcName = mapXML.childNodes[0].childNodes[i].attributes.mcName;
var shopName = mapXML.childNodes[0].childNodes[i].attributes.shopName;
var link = mapXML.childNodes[0].childNodes[i].attributes.link;
var nodeValue = mapXML.childNodes[0].childNodes[i].childNodes.toString();
//trace(nodeValue);
//
_root[mcName].shopName = shopName;
_root[mcName].link = link;
_root[mcName].nodeValue = nodeValue;
// RollOver
_root[mcName].onRollOver = function() {
//removeMovieClip(_root["square_mc"]);
//createHint(this.nodeValue);
_root.attachMovie("hint", "shopHint_mc", this.getNextHighestDepth(), {x:0, y:0});
};
// RollOut
_root[mcName].onRollOut = function() {
removeMovieClip(_root["shopHint_mc"]);
};
// MouseMove
_root[mcName].onMouseMove = function() {
//removeMovieClip(_root["square_mc"]);
//createHint(this.nodeValue);
shopHint_mc._x = _xmouse+20;
shopHint_mc._y = _ymouse+20;
};
}
}
function createHint(hintText:String) {
//trace(_xmouse);
_root[mcName].attachMovie("hint", "shopHint_mc", this.getNextHighestDepth(), {x:1000});
shopHint_mc._visible = false;
_root["shopHint_mc"]._x = _xmouse;
_root["shopHint_mc"]._y = _ymouse;
}
убрал лишнее..
вот такой код
stop();
//
var etazh = 1;
var option = buy;
var count = 29;
//==============================================================
// Here we load xml.
mapXML = new XML();
mapXML.load("flashMap.xml");
mapXML.ignoreWhite = true;
mapXML.onLoad = is_loaded;
function is_loaded(success) {
if (success) {
createMap();
}
}
//==============================================================
function createMap() {
var countOption = mapXML.childNodes[0].childNodes.length;
//trace(countOption);
for (var i = 0; i<countOption; i++) {
var mcName = mapXML.childNodes[0].childNodes[i].attributes.mcName;
var shopName = mapXML.childNodes[0].childNodes[i].attributes.shopName;
var link = mapXML.childNodes[0].childNodes[i].attributes.link;
var nodeValue = mapXML.childNodes[0].childNodes[i].childNodes.toString();
//
_root[mcName].shopName = shopName;
_root[mcName].link = link;
_root[mcName].nodeValue = nodeValue;
// RollOver
_root[mcName].onRollOver = function() {
//removeMovieClip(_root["square_mc"]);
//createHint(this.nodeValue);
_root.attachMovie("hint", "shopHint_mc", this.getNextHighestDepth(), {x:0, y:0});
};
// RollOut
_root[mcName].onRollOut = function() {
removeMovieClip(_root["shopHint_mc"]);
};
// MouseMove
_root[mcName].onMouseMove = function() {
//removeMovieClip(_root["square_mc"]);
//createHint(this.nodeValue);
shopHint_mc._x = _xmouse+20;
shopHint_mc._y = _ymouse+20;
};
}
}
function createHint(hintText:String) {
_root[mcName].attachMovie("hint", "shopHint_mc", this.getNextHighestDepth(), {_x:_xmouse, _y:_ymouse});
}
Смысл кода, создать всплывающие подсказки (подсказка движется относительно мыши) при наведении на мувик. (текст грузится из XML)
screamge
08.05.2007, 13:02
у меня что-то на подобии того, только сама подсказка не аттачится, а прорисовывается
Я сначала тоже рисовал.. но там была проблема с глобальными координатами.. вернее я не смог подсказку выводить около мышки.. а здесь по событию onMouseMove - все нормально, но при аттаче подсказка ставится в 0, 0
_root.attachMovie("hint", "shopHint_mc", this.getNextHighestDepth(), {x:0, y:0});
У мувика нет таких свойств.
screamge
08.05.2007, 13:32
У меня написан класс для простой подсказки, могу выложить если разберёшься
и так и так пробовал... вот весь код
{x:0, y:0}
Плохо пробовали, надо
{_x:0, _y:0}
screamge
08.05.2007, 13:37
народ кто-нибудь читал предыдущие комменты? во втором посте ответ уже дан:)
а что это у вас за солянка?
function createHint(hintText:String) {
_root[mcName].attachMovie("hint", "shopHint_mc", this.getNextHighestDepth(), {_x:_xmouse, _y:_ymouse});
}
аттачится в какой-то рутовый мувик, Depth берется от this (а в данном случае это XML, так что получаете NAN ), а мышиные координаты вообще без указателя, подозреваю тоже NAN.
Плохо пробовали, надо
{_x:0, _y:0}
Ну почему вы не верите? Я написал что пробовал с _x и _y.. просто код выслал с этой ошибкой.. случайно.
Может подскажите, как сделать всплывающую подсказку и чтобы она двигалась за мышкой? как при аттаче задать мувику координаты?
Aziz Zaynutdinoff
08.05.2007, 20:36
this.attachMovie("mc_name", "mc_new_name", this.getNextHighestDepth(), {_x:_root._xmouse, _y:_root._ymouse});
this.attachMovie("mc_name", "mc_new_name", this.getNextHighestDepth(), {_x:_root._xmouse, _y:_root._ymouse});
нет не работает. Всеравно ставит в 0,0
screamge
08.05.2007, 21:06
stop();
//
var etazh = 1;
var option = buy;
var count = 29;
//==============================================================
// Here we load xml.
mapXML = new XML();
mapXML.load("flashMap.xml");
mapXML.ignoreWhite = true;
mapXML.onLoad = is_loaded;
function is_loaded(success) {
if (success) {
createMap();
}
}
//==============================================================
function createMap() {
var countOption = mapXML.childNodes[0].childNodes.length;
//trace(countOption);
for (var i = 0; i<countOption; i++) {
var mcName = mapXML.childNodes[0].childNodes[i].attributes.mcName;
var shopName = mapXML.childNodes[0].childNodes[i].attributes.shopName;
var link = mapXML.childNodes[0].childNodes[i].attributes.link;
var nodeValue = mapXML.childNodes[0].childNodes[i].childNodes.toString();
//
_root[mcName].shopName = shopName;
_root[mcName].link = link;
_root[mcName].nodeValue = nodeValue;
// RollOver
_root[mcName].onRollOver = function() {
//removeMovieClip(_root["square_mc"]);
createHint(this.nodeValue);
};
// RollOut
_root[mcName].onRollOut = function() {
_root.shopHint_mc.removeMovieClip()
};
// MouseMove
_root[mcName].onMouseMove = function() {
//removeMovieClip(_root["square_mc"]);
createHint(this.nodeValue);
};
}
}
function createHint(hintText:String) {
_root[mcName].attachMovie("hint", "shopHint_mc", this.getNextHighestDepth(), {_x:_root._xmouse + 20, _y:_root._ymouse + 20});
}
Работает?
Выкладывайте уже исходник, не заставляйте людей гадать на кофейной гуще.
Работает?
Нет.. Спасибо.. уже нашел другой код у KUZEN'a. Спасибо всем.
Вот код функции (если кому интересно, и для поисковиков )) )
F_tips = function (mc, t) {
_root.createTextField("hint", 10000, _xmouse+20, _ymouse-20, 0, 20);
my_fmt = new TextFormat();
my_fmt.color = 0xFFFFFF;
my_fmt.leftMargin = 4;
my_fmt.rightMargin = 3;
with (hint) {
border = true;
borderColor = 0xFFFFFF;
background = true;
backgroundColor = 0xFF0000;
autoSize = true;
text = t;
setTextFormat(my_fmt);
}
_root[mc].onMouseMove = function() {
//trace(_root._width+" | "+_root.hint._width);
if (_root._width >= (_root.hint._width+_root._xmouse+5)) {
_root.hint._x = _xmouse+20;
}
if (_root._height >= _root.hint._height+_root._ymouse+5) {
_root.hint._y = _ymouse-20;
}
updateAfterEvent();
if (this._xmouse>this._width || this._xmouse<0 || this._ymouse>this._height || this._ymouse<0) {
delete this.onMouseMove;
_root.hint.removeTextField();
}
};
};
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.