اشکال در کد نویسی

Mkiani

Member
سلام دوستان عزیز:oops::oops::oops:
من دارم رو یه قالب سایت (فلش) کار میکنم که کل سایت تو یه فایل swf هستش برا همین حجم کار میره بالا به همین خاطر من صفحات رو از هم جدا کردم و یه سری افکت ها که موقع عوض کردن صفحه ها بود از بین رفتن یه سری کد پیداکردم که ماله همین افکت ها بوده
onClipEvent(load) {
num=3;
}
on(rollOver) {
if(_root.link<>num) {
this.gotoAndPlay("s1");
}
}
on(rollOut, releaseOutside) {
if(_root.link<>num) {
this.gotoAndPlay("s2");
}
}
on(release) {
if(_root.link<>num and _root.animation==1) {
_root.animation=0;
_root.link_prev=_root.link;
_parent["item" + _root.link].gotoAndPlay("s2");
_root.link=num;
_root.play();

}
}
حالا میخام این کد ها یه جوری شه که انیمیشن اجرا بشه فکر کنم عیب کار این دستور های شرطی باشه
در ضمن من برای اینکه یه فایل swf رو از بیرون اجرا کنم این دستور رو دادم [LTR]loadMovieNum("about.swf","0") [/LTR]و برا همین این دوخط قرمز رنگ رو حذف کردم حالا باید چه تغییری بدم:paint::paint:
ببخشید سرتون رو درد آوردم :rose::rose:
 

Mkiani

Member
سلام دوستان
انجمن تق و لغه هیشکی اینا بلد نیست حداقل بگین نمیشه تا من فکر نکنم کسی محل به ما نمیزاره
 

Avang2005

مدیر انجمن
سلام دوست من

اولا شما هر اكشني كه مي خوايد براي سوال بپرسيد در تگ PHP قرار بديد كه معلوم باشه چي نوشتيد

مثل :

PHP:
onClipEvent(load) {
num=3;
}
on(rollOver) {
if(_root.link<>num) {
this.gotoAndPlay("s1");
}
}
on(rollOut, releaseOutside) {
if(_root.link<>num) { 
this.gotoAndPlay("s2");
}
}
on(release) {
if(_root.link<>num and _root.animation==1) {
_root.animation=0;
_root.link_prev=_root.link;
_parent["item" + _root.link].gotoAndPlay("s2");
_root.link=num;
_root.play();
}
}

در مورد اين كدتون هم بيشتر توضيح بديد كه چه كاري مي خواد انجام بده

موفق باشيد
 

BehrouzPc

پــــادشــاه فــلــــش
اولا باید بگم که انجمن تق و لق نیست بهتره در لحنتون تجدید نظر کنید!:mad:
دوما ، بهتره که سوالاتتون رو دقیق تر و روشن تر بیان کنید.....
سوما سوال شما و یا این کد ،کد بسیار ساده ای میباشد که هر فرد با آشنایی کمی از اکشن اسکریپت ازش سر در میاره و .... (بهتره...):-?

این کدهای فقط یک سری مووی کلیپ که احتمالا شامل افکت های انیمیشنی میباشد رو نسبت به شرایط مثل_root.animation=0; این به فریم های مختلف هدایت می کند
در واقع یک سری پرامتر در _root قرار داده شده که در طول پروژه مقدار دهی می شود این متغیر های به _root نسبت داده شده تا بتوان از همه به آنها دسترسی داشت

در کل این کد ها بدون وجود مووی کلیپ های حاوی انیمیشن های مربوطه کاربری ندارند
شما می توانید در صورت ثابت بودن پروژه خود بدون استفاده از این کد ها نیز از انیمیشن هایی که در پروژه استفاده شده استفاده نمایید

موفق و پیروز باشید
 

Mkiani

Member
سلام دوستان گل عزیز:oops::oops::oops::oops:
از آونگ جان و بهروز جان تشکر ویژه:oops::oops: به عمل میاد آقا بهروز چرا بهت بر میخوره یه کمی (یه کمی دوباره بهت بر نخوره:oops::oops:) دیر جواب میدین ولی بازم جای شکرش باقیه جواب میدین:rose::rose: مثل بعضی فروم های دیگه نیستید:green::green:
خودم هم میدونم این دستورها چی هستن ولی نمیدونم کجارو تغییر بدم که دستورهای شرطی از بین برن و انیمیشن ها کار کنن چون هرچی تغییر میدم دکمه کار نمیکنه این کدها
PHP:
onClipEvent(load) {
num=3;
}
و
PHP:
if(_root.link<>num)
و
PHP:
if(_root.link<>num and _root.animation==1) {
_root.animation=0;
_root.link_prev=_root.link;
_parent["item" + _root.link].gotoAndPlay("s2");
رو یکم توضیح میخام که ببینم باید چه تغییری بدم که انیمیشن اجراشه در ضمن من از این فرمان loadMovieNum("about.swf","0") به جای
PHP:
_root.link=num;
_root.play();
برا لود کردن استفاده کردم پس باید _root.link هم عوض بشه و همچنین دو خط کد آخر ولی من وقتی حذف میکنم و دستورات خودم رو میذارم کار نمیده
دستور _Root رو میشه یهکم توضیح بدین ممنون:rose:
خیلی ممنون از راهنماییاتون و وقتی که برا من میذارین مخلصیم:):rose:
 
آخرین ویرایش:

BehrouzPc

پــــادشــاه فــلــــش
ابتدا می بایست بگم که برای است کار کافیه شما یه مووی کلیپ رو در جایی که انیمیشن ها روی اون اعمال بشه قرار بدید (درون مووی کلیپ مورد نظر خود)

حالا اسم Instance name اون رو مثلا بزارید mc_lodx اگه مووی کلیپ اولتون که توش موی کلیپ ساختید اسم نداشت برای اون هم اسم بزارید مثلا MC1 اگه داره در کد خودتون همون اسم رو استفاده کنید

PHP:
MC1.mc_lodx.loadMovie(toyrfilename.swf);

با این کار فایل فلش شما درون مووی کلیپ بارگزاری میشه


در مورد _root در واقع یک اشاره گر می باشد برای اشاره به ریشه اصلی فلش که با این روش به راحتی از هر جایی می توان آدرس دهی کرد
البته استفاده ای که اینجا شده برای متغییر های بوده که می شد از Global ها هم استفاده کنه


در مورد
PHP:
onClipEvent(load) 
{ num=3; }

این کد مقدار متغییر num دورن مووی کلیپی که روی آن نوشته شده را تعیین می کند


و این


شرط نا مساوی بود متغییر _root.link را با num چک می کنید ، یعنی در صورتی که _root.link با num برابر نباشد کد بین {} های این شرط اجرا می شود


و این کد


PHP:
if(_root.link<>num and _root.animation==1) {
_root.animation=0;
_root.link_prev=_root.link;
_parent["item" + _root.link].gotoAndPlay("s2");

در ابتدا شرط نا مساوی بود و مساوی بود animation را چک می کند
و بعد به متغییر animation مقدار صفر می دهد ، با این مقدار فعالیت انیمیشن ها چک می شود
و بعد به link_prev یا پیوند قبلی مقدار پیوند جدید داده می شود
و در مرحله بعد item ی که یک محرله بیرون تر از محل جاری کد می باشد را به فریمی با flag ی با مقدار s2 می برد نام این آیتم item به اضافه link می باشد


اینم توضیحات کامل

اگه فایل فلش رو میزاشتی سریع تر می شد جواب داد.
 

Mkiani

Member
سلام دوست عزیز
این فایل فلش من میخام انیمیشنی که اسمش change_cont هست اول وبعد change_cont_sq_main اجرابشه بعد بره توصفحه اصلیم دوتااسم تو کتابخونه فلش هست چون حجم خود فلش زیاد بود swf رو گزاشتم خیلی از زحماتت ممنون :rose:
 

پیوست ها

  • About.rar
    127.5 کیلوبایت · بازدیدها: 5

BehrouzPc

پــــادشــاه فــلــــش
این فایلی که ارسال نمودید رو بنده چک کردم ، متوجه منظورتون از change_cont و change_cont_sq_main زیرا در نسخه Decompiler شده نام مووی کلیپ ها توی کتابخانه به صورت خودکار انتخاب می شود

در ضمن کدها و به هم ریخته شده بود و ورژن انتخابی اکشن اسکریپت شما با کد شنا متفاوت بود!! شما می بایست فلش 8 و اکشن اسکریپت 2 را انتخاب نمایید

البته

این کار رو به راحتی میتونی به صورت دستی اجام بدی و از فرمان های اکشن اسکریپت هم استفاده نکنی
کافیه در یک لایه انیمیشن مورد نظرت رو قرار بدی برای mask
و در لایه زیرین مووی کلیپت رو بارگزرای کنی درون یک مووی کلیپ
و در بالا این دو لایه همون انیمیشن ماسک رو قرار بدی برای نمایش و...
اگه ماسک خوب عمل نکرد cacheAsBitmap ماسکت رو توی properties تیک بزن
به همین راحتی برای لود هم از همون کدی که گفتم استفاده کن


اگه کارت راه نیفتاد fla پروژه رو یه جا آپلود کن و لینکش رو بزار
 
بالا