Fa آدرس دهی

eblue

Member
سلام.
کارم خیلی فوریه خواهشن جواب بدید.
من یه پروژه ام ام بی درست کردم.
تا حالا هم با این نرم افزار کار نکرده بودم.کلی سوال دارم.
اول اینکه تو پروژه من باید متن 4 تا کتاب رو قرار بدم.من متنا رو تبدیل به وب کردم حالا نمی دونم چه جوری باید اونا رو تو ام ام بی وارد کنم وآدرس بدم تا تو همه سیستم ها نشون داده بشه.
سوال دوم در مورد فایل های فلشم و آهنگ است چه طور اونا رو آدرس بدم.
راستی دستور <srcdir> رو تو کجا وارد میکنن؟
یک دنیا ممنون اگه جواب فوری بدید. دعاتون می کنم.
 

evil_gates

اين نيز بگذرد ...
دوست عزيز
به اين انجمن خوش اومديد

اگه كتاب جناب silvercover رو مطالعه كنيد پاسخ همه سوالاتتون رو درباره اين نرم افزار خواهيد گرفت:

http://forum.majidonline.com/showthread.php?t=123477

اول اینکه تو پروژه من باید متن 4 تا کتاب رو قرار بدم.من متنا رو تبدیل به وب کردم حالا نمی دونم چه جوری باید اونا رو تو ام ام بی وارد کنم وآدرس بدم تا تو همه سیستم ها نشون داده بشه.
فايلهاي htm تون رو كنار برنامه قرار بديد و تو mmb از طريق شي HTML اونا رو فراخواني كنيد. براي فراخواني فايلهاتون يك كليد بسازيد و اين كد رو قرار بديد:
کد:
path$ = '<SrcDir>\myfolder\file1.htm'
Browser("Browser","path$")
به همين ترتيب براي نمايش ساير فايلها كافيه مقدار متغير $path رو تغيير بديد و آدرس فايلهاتون رو بنويسيد

سوال دوم در مورد فایل های فلشم و آهنگ است چه طور اونا رو آدرس بدم.
براي فايلهاي فلش و آهنگها هم ميتونيد از همين روش استفاده كنيد با اين تفاوت كه آدرس فايلها عوض ميشن و آدرس موردنظر تو متغير $path يا هر متغير ديگه‌اي كه مدنظرتون هست ميشينه.

براي نمايش فايلهاي فلش از دستور:
کد:
Flash("Flash","path$")
و براي پخش فايل صوتي از دستور AudioOpen استفاده كنيد:
کد:
AudioOpen("path$")
AudioPlay()

راستی دستور <srcdir> رو تو کجا وارد میکنن؟
SrcDir دستور نيست يك ماكرو براي آدرسهاي وابسته‌ هست.

فرض كنيد ما برنامه‌اي داريم تو مسير درايو D پوشه sample . فايل اصلي برنامه ما اينجا قرار داره. اما تو اين پوشه يك پوشه ديگه به نام myfolder داريم و تو اين پوشه فايلي به نام myfile.

حالا اگه بخوايم از طريق برنامه اين فايل رو فراخواني كنيم دو روش داره:

1- آدرس ثابتي رو تعيين كنيم: d:\sample\myfolder\myfile
تو اين روش اگه محل برنامه يا فايلهاي جانبي رو عوض كنيد يا برنامه‌ رو به كامپيوتر ديگه‌اي منتقل كنيد كه درايو d نداشته باشه برنامه با مشكل مواج ميشه و نميتونه فايل شما رو نمايش بده

2- از طريق ماكرو SrcDir آدرس وابسته اي تعيين كنيم كه اگه برنامه ما به مسير ديگه‌اي يا كامپيوتر ديگه‌اي منتقل شد مشكلي تو نمايش فايل به وجود نياد.

براي اين منظور اين آدرس رو براي نمايش فايل مينويسيم:
کد:
<SrcDir>\myfolder\myfile
تو اين روش آدرس دهي از محلي كه فايل اصلي برنامه ما قرار داره پوشه‌ها و فايلهاي زيرمجموعه شناسايي و خونده ميشن.

موفق باشيد
 
آخرین ویرایش:

evil_gates

اين نيز بگذرد ...
دوست عزيز
پروژه جديدي تو بيلدر باز كنيد و از منوي Object گزينه Create و بعد هم گزينه HTML رو بزنيد و يك شي HTML تو صفحه با ابعاد موردنظر رسم كنيد.

روي اين شي دابل كليك كنيد و تو پنجره خصوصياتي كه باز ميشه تو قسمت url آدرس فايل اصلي وبتون رو بديد. (همون آدرس وابسته با ماكرو SrcDir)

مجددا از منو Obejct گزينه Create و اينبار گزينه TextBotton رو انتخاب كنيد و كليدي رو در محل موردنظر رسم كنيد.

روي اين كليد دابل كليك كنيد، تو پنجره خصوصيات تو قسمت Text ليبل موردنظر براي اين كليد رو بنويسيد و تو قسمت Action گزينه اي كه شبيه به يك دفترچه يادداشت هست رو بزنيد و تو پنجره‌اي كه باز ميشه كدي رو تو پست قبلي گفتم وارد كنيد و پنجره ها رو ok كنيد.

به اين ترتيب شما يك شي HTML ساختيد و يك كليد كه ميتونيد با كليك كردن روي اون فايل وبتون رو تو شي HTML داخل برنامه نمايش بديد.

به همين روش ميتونيد كليدهاي ديگه‌اي هم بسازيد و براي هركدوم دستورات موردنظر رو بديد.

فراموش نكنيد چون از آدرسهاي وابسته استفاده ميكنيد در حالت آزمايش اين پروژه جواب نميده بايد قبل از استفاده ازش خروجي exe بگيريد و بعد اجرا كنيد تا نتيجه رو ببينيد.

البته باز هم توصيه ميكنم چون كار با اين برنامه رو تازه شروع كرديد كتاب آموزشي جناب silvercover رو مطالعه كنيد تا به سوالاتتون پاسخ بده.

موفق باشيد
 

evil_gates

اين نيز بگذرد ...
واقعا نمی دونم چه جوری تشکر کنم.
ممنون که به مخاطب با هر سطح علمی که هست پاسخ میدید.
فقط یه مورد من این کارو انجام دادم فقط تا قبل از اینکه روی دکمه کلیک کنم ارور بروزر رو نشون میده چه کارکنم . در ضمن من میخوام با کلیک روی صفحه قبلم که تو ام ام بی هست میخوام به این صفحه بیام و از اول باید وبم نشون داده بشه

دوست عزيز
خوشحالم كه تونستم كمكي كنم تا مشكلي حل بشه.

اما در مورد سوالتون تو پست قبلي هم گفتم تو پنجره Browser تو قسمت url آدرس اولين صفحه وبي كه قصد داريد نمايش بديد رو بنويسيد. يا اگه صفحه وبي نداريد ميتونيد شي Browser رو مخفي كنيد و با كليك روي كليد اول دستور:
کد:
Show("Browser")
رو اجرا كنيد تا شي HTML نمايش داده بشه و بعد دستورات بعدي رو اجرا كنيد.

تو كليدي كه براي ورود به اين صفحه هست دستور Page رو بنويسيد:
کد:
Page("page name")
به جاي page name نام صفحه موردنظر رو بنويسيد مثلا Page 3
 

eblue

Member
ممنون دوست عزیز.
فقط فایل اجرایی فلش روی سیستمی که فلش نداره نشون داده نمیشه برای این مشکل چه کنم؟
 

evil_gates

اين نيز بگذرد ...
دوست عزيز
راجع به اين موضوع قبلا خيلي بحث شده.

اگه نسخه فايل فلش شما swf6 و پايينتر هست موقع كامپايل كردن پروژه گزينه Embedded Flash Player Runtime رو انتخاب و بعد پروژه رو كامپايل كنيد.

اگه هم نسخه فلش شما بالاتر هست اين مبحث رو دنبال كنيد:

http://forum.majidonline.com/showthread.php?t=143455

موفق باشيد
 

eblue

Member
سلام .ببخشید که دوباره مزاحم شدم.
یادم رفت بگم من یه سری فایل تو کپتیویت ساختم و برای اجراشون باید حتما Adobe_Shockwave_Player روی سیستم کاربر نصب باشه. چه جوری می تونم قبل از اجرای اتوران Adobe_Shockwave_Player رو نصب کنم؟ ممنون:rose:
 

evil_gates

اين نيز بگذرد ...
دوست عزيز
پيشنهاد ميكنم سورس فايل رو كنار برنامتون قرار بديد و تو شروع برنامه با دستور Run اين runtime رو اجرا كنيد تا نصب بشه.
 

eblue

Member
با سلام.
چه جوری می تونم با کلیک بر روی یک کلید متن داخل input text رو پاک کنم؟
 

nevercom

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

از کد زیر میتونید استفاده کنید.
کد:
Empty$ = ''
LoadText("EditBox","Empty$")
 

eblue

Member
می بخشید.عمدی نبود.
مرسی . میشه بگید چه جوری کنترل به input text منتقل میشه؟ میخوام بعد از پاک شدن متن دوباره اشاره گر درون input text قرار بگیره.
سوال بعدی تو صفحه ای که دو تا کلید دارم می خوام یکیش نسبت به دکمه اینتر حساس باشه. مرسی
 

evil_gates

اين نيز بگذرد ...
می بخشید.عمدی نبود.
مرسی . میشه بگید چه جوری کنترل به input text منتقل میشه؟ میخوام بعد از پاک شدن متن دوباره اشاره گر درون input text قرار بگیره.
سوال بعدی تو صفحه ای که دو تا کلید دارم می خوام یکیش نسبت به دکمه اینتر حساس باشه. مرسی

براي سوال اولتون ميتونيد با كليد Tab صفحه كليد مجددا كنترل رو به EditBox برگردونيد. اما اگه قصد داريد خودكار چنين اتفاقي بيفته كمي كارتون پيچيده خواهد شد.

چون به طور مستقيم چنين امكاني تو mmb وجود نداره بايد موقعيت فعلي ماوس رو با توابع Mou*** و MouseY و منطقه اي كه EditBox شما قرار داره رو با ObjectX و ObjectY بدست بياريد. بعد با استفاده از پلاگين SmallPlugin ماوس رو به منطقه‌اي كه EditBox قرار داره منتقل كنيد و دستور كليك چپ رو اجرا كنيد و مجددا ماوس رو به منطقه قبلي خودش برگردونيد.

دراينصورت كنترلتون به EditBox منتقل ميشه و چيزي كه مدنظرتون هست شبيه سازي ميشه.

براي سوال دوم هم ميتونيد يك اسكريپت كنار كليدتون بسازيد و تمام دستوراتي كه تو كليد داديد تو اسكريپت هم بنويسيد و از قسمت Keyboad كليد Enter رو انتخاب كنيد

موفق باشيد
 

eblue

Member
ممنون.مشکلم حل شد.
راستی اینکه گفته بودید برای اجرای فایل های Shockwave سورس رو کنار برنامه قرار بدم.تا نصب شه.
این کار رو کردم ولی با هر بار اجرای برنامه مراحل نصب تکرار میشه . میشه کاری کرد که این کار یک بار انجام شه یا به صورت مخفی انجام شه؟ یک دنیا تشکر
 

evil_gates

اين نيز بگذرد ...
پيشنهاد ميكنم در زمان نصب برنامه با SaveVariable مقداري رو (مثلا 1) رو تو رجيستري ذخيره كنيد و با بررسي وضعيت اين كليد تو Page Start از نصب براي دفعات بعدي جلوگيري كنيد. اين كد رو ببينيد:
کد:
LoadVariable("shockwave","x")
If (x=0) Then
  Run("<SrcDir>\shckwave.exe","")
  x = 1
  SaveVariable("shockwave","x")
End
If (x=1) Then
  Page("page name")
End
 

eblue

Member
خیلی ممنون .کد رو امتحان کردم .فقط بعد از دستور if اول خواستم وارد صفحه ای به نام install شه و بعد از if دوم وارد صفحه home .ولی در هر دو حالت وارد صفحه home می شه.
و سوال بعد اینکه این کد هر بار مقدار متغیر رو ذخیره میکنه .ممکنه من برای بار اول این برنامه رو روی سیستم خودم اجرا کنم و بار دوم روی سیستم دیگه .با توجه به اینکه بار دوم دیگه برنامه نصب نمی شه آیا مشکلی پیش نمیاد یعنی این کد تو هر سیستم از مقدار دهی 0 شروع میشه؟
 

evil_gates

اين نيز بگذرد ...
خیلی ممنون .کد رو امتحان کردم .فقط بعد از دستور if اول خواستم وارد صفحه ای به نام install شه و بعد از if دوم وارد صفحه home .ولی در هر دو حالت وارد صفحه home می شه.
قاعدتا نبايد مشكلي داشته باشيد. تو آخرين خط if اول دستور return رو هم اضافه كنيد و مجددا تست كنيد.

و سوال بعد اینکه این کد هر بار مقدار متغیر رو ذخیره میکنه .ممکنه من برای بار اول این برنامه رو روی سیستم خودم اجرا کنم و بار دوم روی سیستم دیگه .با توجه به اینکه بار دوم دیگه برنامه نصب نمی شه آیا مشکلی پیش نمیاد یعنی این کد تو هر سیستم از مقدار دهی 0 شروع میشه؟
خير مشكلي پيش نمياد
 

eblue

Member
سللام.
من بعد از نوشتن این کد
LoadVariable("shockwave","x")
If (x=0) Then
Run("<SrcDir>\shckwave.exe","")
x = 1
SaveVariable("shockwave","x")
End
If (x=1) Then
Page("page name")
End​
چندین بار خروجی اتوران گرفتم . بنابراین فقط برنامه بار اول نصب شد. حالا می خوام پروژه رو در حالت نهایی ذخیره کنم بنابراین باید مقدار x رو 0 کنم. تا برنامه نصب شه.
من قبلا این کار رو امتحان کردم جواب می داد اما یه مدته هر چی متغیر رو 0 می کنم جواب نمی ده و حتی اسم متغیر رو هم کلا عوض کردم اما وقتی برنامه اجرا می شه بدون اینکه صفحه نصب نرم افزار بیاد میره صفحه اصلی .
evil-gates عزیز لطفا کمکم کنید.:rose:
 

evil_gates

اين نيز بگذرد ...
دوست عزيز

چون متغيرتون تو رجيستري ثبت ميشه به همين خاطر هميشه مقدارش رو از اونجا ميخونه و چون مقدارش در رجيستري يكبار 1 تعيين شده ديگه اجازه نصب نميده.

وارد رجيستري بشيد و مسير زير رو دنبال كنيد:

HKEY_CURRENT_USER\Software\Mediachance\Multimedia Builder 4.9.8\MyApp

تو پانل سمت راست متغيرتون رو انتخاب و حذف كنيد و همين كار رو براي براي مسير

HKEY_CURRENT_USER\Software\Mediachance\Multimedia Player 4.9.8\MyApp

هم انجام بديد.
 

eblue

Member
داخل مسیر اول نبود ، اما تو مسیر دوم بود تغییرش دادم درست شد.
 

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

بالا