یافتن لیبل فریم جاری

nazi20_20_20

New Member
برای اینکه از روی شماره یک فریم جاری بتوانم برچسب(label ) آن را پیدا کنم چه کدی نیاز است؟؟؟توضیح اینکه من یک گالری تصویر دارم که هر تصویر بعلت داشتن افکت ، بیش از یک فریم دارد.حال چگونه برنامه دکمه های next و previous و autoplay را برای نمایش عکس قبل و بعد به کار ببرم ؟؟؟


خیلی حیاتیه !!!!!؟؟؟
 

++Hadi++

Active Member
2 راه هست :
1- لیبل ندی و با جریان عادی شماره ات کار کنی :
PHP:
gotoAndPlay(3);          gotoAndStop(6);
2- به هر فریم اسم یا لیبل بدی پس می گی :
PHP:
gotoAndPlay("start");        gotoAndStop("stop2");
fhd...
 

++Hadi++

Active Member
در ضمن در مورد رفتن به فریم قبلی هم در اکشن 3 داریم :
PHP:
myMovie.prevFrame();
و در مورد رفتن به فریم بعدی داریم البته در اکشن 3 :
PHP:
myMovie.nextFrame();
myMovie اسم نمونه ای یا instanceName مووییه که عکس ها با فریمشون در اون قرار دارن.پیشنهاد می کنم در مووی عکس ها لایه دومی برا اکشن درست کنین و اونو فریم به فریم (F6 ) در هر فریم دونه دونه دستور ;()stop رو بنویسین و رو هر عکس که بره رو اون استپ می کنه .
اگه هم مووی در جای دیگه ای هست می تونین بنویسین :
PHP:
MovieClip(this.place).preveFrame();                  or            MovieClip(this.place).nextFrame();
و به جای place باید مکان مووی کلیپتونو تعریف کنین مثلا برای کنترل 3 درجه بیرونتر از مووی حاضر که در حال کد نویسی براش هستیم به جای اون قرار می دیم :parent.parent.parent
و برای مثلا مووی 3 که درون موی 2 و 2 هم درون مووی 1 هست و 1 الان در مووی حاضر ما هست می نویسیم :
PHP:
MovieClip(this.1.2.3).nextFrame();
و برای بدست آوردن فریم کنونی در اکشن 3 (شماره فریمی که در اون هستیم ) می نویسیم :
PHP:
Movieclip(this).currentFrame();
مثلا این یک مثال در اکشن 3 هست که می گه اگه فریم کنونی من 1 نبود یکی به عقب برو تا آخرش به یک برسی و می تونی با این تابع جریان حرکت یه مووی کلیپ که از اول به آخر می ره رو از آخر به اول ببری :
PHP:
function playToBack(event:Event):void
{
    //flash.media.SoundMixer.stopAll();
    if (myMotion.currentFrame > 1)
    {
           myMotion.prevFrame();
    } 
    else 
    {
            myMotion.removeEventListener(Event.ENTER_FRAME,playToBack);
    }
}
بای ...


 

nazi20_20_20

New Member
سلام و تشکر از دوستان عزیز
راه هایی که گفته شد مشکل من رو حل نمیکنه .چون من در هر فریم یک عکس ندارم و یک روال منظمی در مکان قرارگیری هر کدوم از عکسها نیست.چون هر کدوم یک افکت خاصی دارند. دستوراتی که گفتید برا وقتیه که هر عکس در یک فریم قرار بگیرد ....ضمناً تعداد عکسها حدوداً 1000 تاست و من نمیتونم از شماره هر فریم در دستور gotoAndPlay() استفاده کنم ... ممنون میشم اگه باز هم راهنمایی کنید.

 

++Hadi++

Active Member
اگه منظورتون از یه روال 1000 تایی اینه که در یک فریم 1000 تا عکس رو پشت سر هم مثلا از چپ به راست چیدین باید بیایین و یه دستور اکشن واسه اون 1 فریم بنویسین و مثلا به دکمه دستوری بدین که اگه کلیک شد مکان همه عکس ها رو مثلا 50 یا 100 پیکسل به راست یا به چپ ببره .
برای این کار بهتره همه عکسا رو در یک مووی کلیپ قرار بدی و مووی کلیپ کلی رو در صحنه قرار بدی و یه ماسک واسه اش درست کنی تا محدوده اصلی مووی کلیپ آلبومت دیده شه و بعد اگه مثلا دکمه رو کلیک کردن مجموعه دستورات زیر رو بنویسی .
فرض کن یه دکمه next و یه دکمه preve طراحی کردی و اسم نمونه ای اونا همینن .
PHP:
next_but.addEventListener(MouseEvent.CLICK,nextFUN);
preve_but.addEventListener(MouseEvent.CLICK,preveFUN);
function nextFUN(evt:MouseEvent):void
{
albumMovie.x-=100;
}
function preveFUN(evt:MouseEvent):void
{
albumMovie.x+=100;
{
 

++Hadi++

Active Member
ببخشین من اینو که فرمودین هر کدوم یه افکت دارن رو نفهمیدم چیه آیا کلاس slideShow بهشون دادین ؟
یا هر کدوم فییلتر دارن؟
در ضمن اسم دکمه هات شده next_btn و preve_btn
 
آخرین ویرایش:

nazi20_20_20

New Member
سلام
ببینید در مووی کلیپ من تعدادی عکس قرار گرفتند که برا هر کدوم یه افکت خاص گذاشتم .افکتها را خودم درست کردم و طبیعتاً برا پیاده سازی هر افکت 20-30 تا فریم استفاده شده .بنابراین عکسها در فریم های پشت سر هم نیستند .حالا برا نوشتن دستور prevباید مثلاً از فریم 100 که عکس پنجم وجود داره به فریم 60 که عکس چهارم قرار گرفته برم .برا این کار باید چه کنم ؟؟
ضمناً میشه در مورد استفاده از کلاس slideshow که گفتین میشه توضیح بیشتری بدین ؟؟؟
از راهنمایی هاتون بی نهایت ممنون
 

++Hadi++

Active Member
شما دست گذاشتین رو یه چیز مشکل گذاشتین
اگه افکت ها تون تعداد فریمهای مساوی رو داره یعنی هر عکس مثلا 40 تا فریم برا افکت داره می تونین در اونجایی که نقطه تلاقی هست یا بهتر بگم در اونجایی که عکس مثلا 4 به مناسب ترین جای خودش در جلو می رسه که باید استپ کنه اکشن ;()stop رو بنویسین تا در این نقاط موویتون استپ شه .بعد می یایین دو تا تابع برا next , preve می نویسین به این ترتیب که اگه کاربر next رو زد فقط مووی تون play شه بهتر بگم :
PHP:
next_but.addEventListener(MouseEvent.CLICK,nextFUN);
function nextFUN(evt:mouseEvent):void
{
preve_but.visible=false;
next_but.visible=false;
AlbumMovieName.play();
}
با این تابع کاری که شده اینه که هربار دکمه بعدی کلیک می شه موویتون play می شه و باعث می شه تا اونجایی بره و جریان داشته باشه که استپ نیست و همین که به دستور استپ بعدی یا بهتر بگم ابتدای عکس مناسب در جای مناسب جلویی بعدی ریسد استپ می شه و نتیجه اینه عکس بعدی در جلو قرار گرفته اونم با حرکت افکتیو خودش.
حالا نوبت به حرکت درجهت عقب یا دکمه preve می رسه .
فرض کنیم تعداد فریم ها برای حرکت افکتیو هر عکس 40 تاست یعنی از عکس 1 به 2 40 تا فریم قراره پیمایش شه .
این دستورو می نویسیم.
PHP:
preve_but.addEventListener(MouseEvent.CLICK,preveFUN);
function preveFUN(evt:MouseEvent):void
{
var counter:Number=0;
preve_but.visible=false;
next_but.visible=false;
this.addEventListener(Event.ENTER_FRAME,goBack);
function goBack(evt:Event):void
{
counter++;
if(counter<41)
AlbumMovieName.preveFrame();
else
{
counter=0;
AlbumMovieName.stop();
this.removeEventListener(Event.ENTER_FRAME,goBack);
}
}
}

البته باید به این فکر هم باشی که اگه طرف در میانه راه جریان حرکت یک دفعه ای دکمه مخالف رو زد یا دوباره دکمه مورد نظر رو زد دکمه ها ی جلو و عقب خاموش بشن و با visible این کارو کردم.
فقط در همون نقاط تلاقی که استپ کرده بودی و در واقع همون جاییه که عکست استپ شده و در بهترین حالت نمایشه و حرکت تموم شده کافیه در اکشن زیر دستور استپ دکمه هاتو از حالت غیب در بیاری یعنی در کل در این نقاط داریم :
PHP:
stop();
preve_but.visible=true;
next_but.visible=true;

موفق و معین باشی ...
بای...
 

nazi20_20_20

New Member
با سلام
راهی که پیشنهاد کردید واقعاً راه خوبی است ولی مشکل اینجاست که من تا کنون با اکشن اسکریپت2 کار می کرده ام و خوب نمی تونم با اکشن 3 کار کنم زمانیکه کد شما رو برای دکمه preve استفاده می کنم error زیر نشان داده می شود و من متوجه نمی شم که چه جوری می شه این error را برطرف کرد و اشکال کار از کجاست ممنون می شم اگه راهنمایی کنید....
------------------------------------------------------------------------------------
**Error** Scene=Scene 1, layer=Layer 13, frame=1:Line 2: The class or interface 'MouseEvent' could not be loaded.
function preveFUN(evt:MouseEvent):void

**Error** Scene=Scene 1, layer=Layer 13, frame=1:Line 8: The class or interface 'Event' could not be loaded.
function goBack(evt:Event):void

-------------------------------------------------------------------------------------
 

nazi20_20_20

New Member
سلام
اگه کسی می تونه تو این زمینه راهنمایی کنه ممنون می شم.من با این مشکل رو هر چه زودتر حل کنم.
خیلی خیلی ممنون
 

nazi20_20_20

New Member
سلام
چرا کسی به من کمک نمی کنه؟:cry:
اگه کسی می تونه تو این زمینه راهنمایی کنه ممنون می شم.من باید این مشکل رو هر چه زودتر حل کنم.
خیلی خیلی ممنون
 

BioDread

Banned
دوست من
من با نهایت احترام میگم
شما داری چرت و پرت میگی
خودتم نمیدونی چی می خوایی

باید به صورت کامل توضیح بدی تا من و دوستان کمکت کنیم

هر چه قدر توضیحت کامل تر باشه جواب کامل تری میگیری!
 

s.o.a.d

Member
من زیاد چیزی سرم نمیشه
هنوز مثه اولای biodread جانم که فقط واسه رفع احتیاج میرم سراغ as
دوست من نیگاه کن
وقتی 1000 تا عکس داری نمیشه انقدر بی برنامه و نا مرتب کار کنی
چون اگه بخوای بعد 678 امی یه عکس اضافه کنی، بیچاره شدی رفته :D
شما کاری که میتونی بکنی اینه که روی فریم اول هر عکس یه اسم برای مثلا p1, p2, p3 تا آخر
بعد واسه action
PHP:
روی فریم اولت مینویسی

_root.link = 1;

  nextبعد روی دکمه 


on (press){
    _root.link = _root.link + 1;
    _root.page = "p" + _root.link
    gotoAndPlay(_root.page);
}


prev و روی دکمه 

on (press){
    _root.link = _root.link - 1;
    _root.page = "p" + _root.link
    gotoAndPlay(_root.page);
}
پ.ن 1 : مهم نیست اسم دکمه هات چی باشه
پ. ن 2: مهمه که اسم فریمات یه سری باشه، یعنی p1 بعدی p5 نباشه یا بدتر مثلا f3
پ.ن 3: اگه بخوای به کاری کنی که وقتی داره یه عکس رو پخش میکنه غیر فعال بشه دکمه هات و نپره بعدی با زدن روش
من تنها چیزی که به ذهنم رسید که کمتر کار داشته باشه اینه که یه if بذاری و روی اولین و آخرین فریمای حالتی که به عکست دادی یه مقدار 0 و 1 یه متغیرت بدی که در حقیقت بشه فعال و غیر فعال کردن کلیدت.


ساده گفتم دیگه
فارسیو بیشتر از این نمیتونستم پاس بدارم :D
امیدوارم درست فهمیده باشم
هرچند همچین چیزیو توضیح داده بودن، فقط چون as3 بود و شما نداشتین
فک کنم این بد نباشه
بازم من بلد نیستم هیچی
اشکالای اینو بگیرین، هم به من کمک شه، هم جواب این موضوع داده شه
ممنون :cool:
 

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

بالا