Fa چطور میشه یک سرچ نقشه توی مولتی مدیا ایجاد کرد؟

shenashir

New Member
توی پروژه یه بخشی داریم که باید روی نقشه، 15 نقطه رو سرچ کنه. یعنی روی نقشه حرکت کنه و به مکان مورد نظر برسه. چیزی تو مایه های گوگل مپ البته نقشه تخت گوگل.
توی بقیه تاپیکها مالتی مدیا بیلدر گشتم ولی چیزی که به این موضوع نزدیک باشه هم پیدا نکردم.
اگر برای اساتید محترم امکانش هست سریعتر راه حلی بدن ممنون میشم.

ساده اش اینه که روی یه نقشه، 15 مکان داریم که با کلیک کردن روی هر مکان یا جستجوی اسمش نقشه به اون سمت حرکت کنه.

باز هم ممنون:oops:
 

محمدمهدی

Well-Known Member
عزیزم در ابتدا شما باید بتونید یه ساختار جستجوی ساده بنویسید تا X,Y ها (یا همون 15 نقطه)ی مد نظر توی نقشه (مثلا یک فایل عکس بزرگ) رو همراه با مشخصات اون به دست کاربر برسونه یا یه جایی لیست کنه.

از موضوع جستجو که بگذریم با فرض اینکه شما می تونی X و Y اون چند نقطه رو به ما بدی. 3 تا راه استاندارد به نظرم میرسه که خدمتتون عرض می کنم.
(در دو راه آخر MMB نقش یک Interface (رابط کاربری) رو بازی میکنه و بقیه کار ها رو باید جای دیگه انجام بدید.)

1. استفاده از Bitmap Object ام ام بی در حالت Actual Image Size برای جا به جایی عکس پشت یک ماسک(Mask) فرضی.
برای اینکار شما باید تصویر نقشه رو داخل MMB بیارید (که پیشنهاد می کنم برای جلوگیری از سنگین شدن برنامه تصویر رو بعد از اجرای برنامه بارگذاری کنید یا از حالت External Image خود ام ام بی استفاده کنید.)
و بعد داخل تنظیماتش بشید و گزینه ی Keep Actual Image Size رو با Option های مورد نیازتون انتخاب کنید.
بعد از اون به این دستورات احتیاج پیدا می کنید :
کد:
ScrollImageView("","")
ImageScrollX(object$)
ImageScrollY(object$)
(فکر می کنم اگر داخل مثال های ام ام بی بگردید یه مثال برای این مورد هست. ضمن اینکه راهنمای ام ام بی در این مورد خیلی خوب توضیح داده.)

2. استفاده از آبجکت Flash و قابلیت های اون هست. که برای اینکار می تونید یه مثال نقشه ی Flash با Action Script 2 (که اگر جستجو کنید پیدا می کنید.) رو توی نرم افزار استفاده کنید و با دسترسی به سورس اون و استفاده از دستورات FlashSetVar و FlashGetVar بین این دو تا رابطه برقرار کنید.

3. همون راه حل بالا اما اینبار با استفاده از ترکیب Html و Java و MMB و رابطه برقرار کردن بین این دو تا. برای درک چگونگی ارتباط هم به مثال خود ام ام بی واقع در :
Multimedia Builder498\Samples\498_examples\html\html_mmbscript.mbd
مراجعه کنید.

اما به هر حال، کاری که می خواهید بکنید ابعاد مختلفی می تونه داشته باشه و پیشنهاد می کنم ابتدا حرکت اولیه رو با یکی از موارد بالا داشته باشید و اگر به مشکل یا ابهامی برخوردید صرفا مطلب مورد سوال رو برای بحث بیشتر قرار بدین.

موفق باشید.
 

shenashir

New Member
سلام
خیلی ممنون بابت پاسخی که گذاشتین.
من یه نکته رو مشخص کنم، من از اسکریپت نویسی و نوشتن هیچ اطلاعی ندارم و این اولین کاری که میخوام با مالتی مدیا در بیارم.
از مدیران هم میخوام به من استثنا اجازه چت کردن بدن.
اگر امکانش هست بگید که چجور همین چند خط رو توی برنامه بنویسم و کجا بنویسم. به جای خطوطی که کلی بحث میکنن عینا بگید جای خالی رو با چی پر کنم. مثلا اگر اسم "نقشه" من map 01 باشه چی باید بنویسم.
بازم ممنون و منتظر پاسخ هستم.
فقط من باید تا جمعه تحویل بدم.
 

محمدمهدی

Well-Known Member
عزیز جان شما می خوای دوستان عینا بگن چطوری گوگل مپ بسازی؟! بدون هیچگونه اطلاعی از طرز کار ام ام بی و اسکریپت هاش؟ پروژه ی اولتون هم هست؟
شاید در وحله ی اول بشه یه کارایی کرد اما به نظرم باید بیشتر از اینا بدونید. مخصوصا اگر یه جور پروژه است. (البته من شخصا اگر پروژه ی دانشجویی باشه، به خاطر شناختی که از رفتار دانشجو های محترم دارم و اینکه می دونم که این کار خطا هست، راهنمایی که منجر به انجام کار بدون فهم اون باشه انجام نمی دم یا مثال نمی ذارم)
البته شاید دوستان بتونن با ساخت مثال، بیشتر کمکتون کنن (و از متخصص های این انجمن چنین لطف هایی بعید نیست.) اما خواهشا خودتون یه قدم های اولیه ای بردارید و بعد از اون دقیقا مشکلتون رو مطرح کنید، نه درخواست کل پروژه رو.

این مطالبی هم که خدمتتون گفتم بدون دانش اولیه از ام ام بی به درد بخور نیست. اما طبق درخواست شما ادامه میدم :
ساده ترین کار این هست که اول بتونید با اون Option هایی که عرض کردم یه عکس قابل Scroll شدن رو توی پروژتون بیارید. بعد از اون با دستور ScrollImageView و دادن X,Y، نقطه ها رو مشخص کنید. یعنی 15 تا دکمه درست کنید که توش این دستور باشه.
فرضا برای شهر تهران :
کد:
ScrollImageView("Bitmap","-130,-220")
برای تعیین واقعی نقطه ها هم می تونید از همون دو تا تابع ImageScrollX و ImageScrollY استفاده کنید. یعنی مثلا بعد از معین کردن یک نقطه، با یه تایمر یا یه پیغام عدد مد نظر اون نقطه رو دریافت کنید. (برای نقطه گذاری اولیه)
مثلا یه دکمه ی تست بسازید و با کدی شبیه به این پاسخ دریافت کنید :
کد:
Message("","ImageScrollX(Bitmap)")
Message("","ImageScrollY(Bitmap)")
بدیهیه که X,Y های هدف، متناسب با تصویری که به عنوان نقشه استفاده کردید داده میشن.
برای درک بهتر حتما راهنمای MMB رو در مورد این آبجکت مطالعه کنید.
 

جدیدترین ارسال ها

بالا