发新话题
打印

[求救] 如何输入名字查询和定位

如何输入名字查询和定位

最近在学习Flash
觉得xml函数实现互动后台查询的功能很强大,可是编程的学问高深得很难消化,希望能和大家多多学习交流,增强信心

下面是自己做的一个练习,有个地方被卡住了:想在输入框里输入名字(如王之涣)点击按钮后,图片就自动定位在有这个名字的地方,实现一个定位功能。

上传附件,期望各位大大指点

[ 本帖最后由 zzmax2007 于 2008-6-20 16:15 编辑 ]

附件

chaxun.rar (109.85 KB)

2008-6-20 14:42, 下载次数: 35

aaa.jpg (31.26 KB)

2008-6-20 16:15

aaa.jpg

TOP

要给每位“诗人”保存好它的坐标,搜索之后就直接根据这个坐标设置map_mc

TOP

继续研究

谢谢版主回复,尽管我还是不能完全理解其中的步骤,我先一步步来吧,看看我有哪些做得不好请指出啊。

1.打开flash后,在其中一个“诗人”那里给了画了个圆,然后按F9,变成影片剪辑,名字是wangzhihuan,得到坐标x=248  y=58

2.新建一个写字本,把代码加上
<?xml version="1.0" encoding="iso-8859-1" ?>
<map>
<r><n>王之涣</n><x>248</x><y>58</y></r>
</map>
然后存成road.xml名字编码是unicode
和flash文件放在同一个地方

3.这部不知道如何操作了,如何添加代码在搜索以后读取这个坐标在图上显示?

[ 本帖最后由 zzmax2007 于 2008-6-20 16:13 编辑 ]

附件

坐标.jpg (13.78 KB)

2008-6-20 16:11

坐标.jpg

新建文件夹.rar (108.9 KB)

2008-6-20 16:13, 下载次数: 9

TOP

复制内容到剪贴板
代码:
System.useCodepage = true;
var xs_n:Number;
var xm_array:Array = [];
cx_txt.color = 0x999999;
cx_txt.text = "请您老输入诗人";
//-----------------RES--------------------------------
res_btn.onRelease = function() {
if (!pos_array) {
  return;
}
for (var _p in pos_array) {
  if (pos_array[_p].n == cx_txt.text) {
   move_func(Number(pos_array[_p].x), Number(pos_array[_p].y));
   return;
  }
}
};
function move_func(__x:Number, __y:Number) {
map_mc.onEnterFrame = function() {
  this._x += (__x-this._x)*.3;
  this._y += (__y-this._y)*.3;
  Math.abs(__x-this._x)<1 && Math.abs(__y-this._y)<1 && delete this.onEnterFrame;
};
}
//-----------------XML----------------------------
var pos_array:Array;
var myxml:XML = new XML();
myxml.ignoreWhite = true;
myxml.onLoad = function(s) {
if (s) {
  pos_array = new Array();
  for (var p:Number = 0; p<this.firstChild.childNodes.length; p++) {
   var _obj:Object = new Object();
   for (var v:Number = 0; v<this.firstChild.childNodes[p].childNodes.length; v++) {
    _obj[this.firstChild.childNodes[p].childNodes[v].nodeName] = this.firstChild.childNodes[p].childNodes[v].firstChild.nodeValue;
   }
   pos_array.push(_obj);
  }
} else {
  trace("xml load error!");
}
};
myxml.load("road.xml");

附件

res.rar (110.34 KB)

2008-6-20 16:37, 下载次数: 30

TOP

谢谢终极讨厌版主帮我改的代码

我在查询里输入:王之涣  点 查询,图片能移动了,但是王之涣的坐标点没有到图的中央,跑出界面了,
我打开road.xml看一下代码:

<?xml version="1.0" encoding="iso-8859-1" ?>
<map>
<r>
  <n>王之涣</n>
  <x>248</x>
  <y>58</y>
</r>
<r>
  <n>ping</n>
  <x>124</x>
  <y>158</y>
</r>
</map>
然后修改代码为

<?xml version="1.0" encoding="iso-8859-1" ?>
<map>
<r>
  <n>王之涣</n>
  <x>300</x>
  <y>300</y>
</r>
</map>

然后预览,查询,这样名字才调整到中间一点,但是位置还不精确,不知道如何保存“王之涣”的坐标,是不是把整个地图在photoshop里打开,然后王之涣所在的位置就是原始位置?还是说把图片导入flash以后,根据王之涣所在的位置确定坐标?

最后再问一下:road.xml这个文件我把后面的
<r>
  <n>ping</n>
  <x>124</x>
  <y>158</y>
</r>

去掉以后发现没什么影响,不知道后来版主加这个代码是啥意思。
好好学习,天天向上!

TOP

添加多个节点啊,就可以查询多个“诗人”了
要不然这个XML只有一个节点,就只能查询 王之涣啊。

坐标只有制作者自己定位

TOP

好的,明白呢,我再慢慢琢磨,谢谢版主
好好学习,天天向上!

TOP

我也想知道。能说说么?

TOP

终极讨厌太牛了

TOP

发新话题