اجرای مووی کلیپ بعد از اتمام دراگ اند دراپ

سلام دوستان
من یه سورس درگ اند دراپ گیر آوردم حال میخوام بعد از اینکه کاربر اونو به درستی انجام داد مووی کلیپ آفرین به نمایش در بیاد. عبارت

[PHPS]afarin.visible = true;[/PHPS]
رو کجای کدها باید قرار دهم؟
 

پیوست ها

  • drag_drop.rar
    9.9 کیلوبایت · بازدیدها: 32
آخرین ویرایش:

spryboy

کاربر فعال
PHP:
afarin.visible = false;
/*afarin.visible = true;*/

var dragArray:Array = [square,circle,triangle];
var matchArray:Array = [squareMatch,circleMatch,triangleMatch];

var currentClip:MovieClip;
var startX:Number;
var startY:Number;
//--------------------------------
var matchesNum:int = 0; // اضافه شد
//--------------------------------
for (var i:int = 0; i < dragArray.length; i++)
{
	dragArray[i].buttonMode = true;
	dragArray[i].addEventListener(MouseEvent.MOUSE_DOWN, item_onMouseDown);
	matchArray[i].alpha = 0.2;
}

function item_onMouseDown(event:MouseEvent):void
{
	currentClip = MovieClip(event.currentTarget);
	startX = currentClip.x;
	startY = currentClip.y;
	addChild(currentClip);//bring to the front
	currentClip.startDrag();
	stage.addEventListener(MouseEvent.MOUSE_UP, stage_onMouseUp);
}

function stage_onMouseUp(event:MouseEvent):void
{
	stage.removeEventListener(MouseEvent.MOUSE_UP, stage_onMouseUp);
	currentClip.stopDrag();
	var index:int = dragArray.indexOf(currentClip);
	var matchClip:MovieClip = MovieClip(matchArray[index]);

	if (currentClip.hitTestObject(matchClip))
	{
		//a match was made! position the clip on the matching clip:
		currentClip.x = matchClip.x;
		currentClip.y = matchClip.y;
		//make it not draggable anymore:
		currentClip.removeEventListener(MouseEvent.MOUSE_DOWN, item_onMouseDown);
		currentClip.buttonMode = false;
		
		// اضافه شد -------------------------------------
		matchesNum++;
		if (matchesNum == matchArray.length)
		{
			afarin.visible = true;
		}
		//---------------------------------------------
	}
	else
	{
		//match was not made, so send the clip back where it started:
		currentClip.x = startX;
		currentClip.y = startY;
	}
}
 
با تشکر از دوست عزیز مشکل قبلی حل شد اما من یه مشکل دیگه هم تازگیا پیدا کردم و آن اینکه وقتی تو این پروژه تو فریم اول درگ اند دراپ رو تکمیل میکنی و به فریم 2 میری تو اونجا نیز اشکال سر جای خودشون هستن. در حالیکه فریم 2 خالیه و باید چیزی اونجا نشون داده نشه. در واقع من میخام با رفتن به فریم بعد این اشیا دیگه اونجا دیده نشن و با برگشت به همان فریم 1 درگ اند دراپ بصورت اجرا نشده مثه حالت اول باشه. فایل جدید پیوست شده بازم متشکر از دوستانی که کمک می کنن.
 

پیوست ها

  • Drog & Drop.rar
    82.3 کیلوبایت · بازدیدها: 26

yaa110

کاربر فعال
سلام، در فریم اول کد تابع fl_ClickToGoToNextFrame را به صورت زیر تغییر بدید:

کد:
function fl_ClickToGoToNextFrame(event:MouseEvent):void {
    this.removeChildren();
    nextFrame();
}

بعد از اینکه یک شی را addChild کردید، محل آن شی عوض میشه و به کل پروژه اضافه میشه.
 
آخرین ویرایش:
سلام، در فریم اول کد تابع fl_ClickToGoToNextFrame را به صورت زیر تغییر بدید:

کد:
function fl_ClickToGoToNextFrame(event:MouseEvent):void {
    this.removeChildren();
    nextFrame();
}

بعد از اینکه یک شی را addChild کردید، محل آن شی عوض میشه و به کل پروژه اضافه میشه.

بسیار ممنون بابت کمکتان.
من فقط جمله ی آخر رو دقیق متوجه نشدم میشه یکم سطح پایین توضیح بدید: "بعد از اینکه یک شی را addChild کردید، محل آن شی عوض میشه و به کل پروژه اضافه میشه."
من برای دکمه ی next کد زیر را در نظر گرفتم:
[PHPS]button_5.addEventListener(MouseEvent.CLICK, fl_ClickToGoToNextFrame_3);

function fl_ClickToGoToNextFrame_3(event:MouseEvent):void
{
this.removeChildren();
nextFrame();
}[/PHPS]

اما موقع تست ارور زیر در قسمت اوت پوت ظاهر میشه:
[PHPS]TypeError: Error #1006: removeChildren is not a function.
at Drog_fla::MainTimeline/fl_ClickToGoToNextFrame_3()[/PHPS]

بازم ممنون منتظر کمکتان هستم.
 

yaa110

کاربر فعال
سلام، تابع removeChildren در نسخه های جدید فلش پلایر و ایر قابل اجراست و باعث میشه که تمام اشیا از شی مفروض پاک بشن. در فایلی که پیوست کردید امتحان کردم و اروری نداشت. با توجه به متن ارور به نظر میرسه که ورژن فلش پلایری که برای پابلیش انتخاب کردید، قدیمیه.

منظورم از آن جمله اینه که اگر زمانی یه شی را مجددا با addChild به یک شی اضافه کنید، محل شی اول تغییر می کنه و مثلا اگر تا حالا فقط در فریم اول بوده از این به بعد در تمامی قریم ها رندر میشه.

موفق باشید.
 
حالا من نمیتونم با روش دیگه این کار رو انجام بدم. ورژن فلش منم 5.5 چرا باید اجرا نشه؟ من یه بار دیگه پروژه رو اضافه کردم. شما قسمت کدها رو ببینید اشکال داره یا نه؟ بخدا خیلی واجبه فقط معطل همین یه موضوعم.
 

پیوست ها

  • Drog & Drop.rar
    80.8 کیلوبایت · بازدیدها: 25

yaa110

کاربر فعال
سلام، فایلی را که پیوست کردید با فلش 6 و فلش پلایر 11.4 تست کردم و مشکلی نداشت. به درستی کار می کنه.
 
خدمت شما دوست گرامی:wink:

ممنون بابت پاسختان
مشکل حل شد.
یه کاری نمیشه کرد موقع برگشت به فریم 1 اگه قبلاً عملیات رو انجام دادیم. دیگه اونا حل شده نباشن و به حالت اول برگردند؟ و سوال دوم اینکه آیا میشه کاری کرد که در هر بار اجرا اشیا بصورت تصادفی جای خود را عوض کنند؟
 

wgolzar

Active Member
خواهش.:oops:
همه این کارا که میگی میشه بکنی.من فکر میکنم خودت یکم تو کدها دقت بکنی راحت میتونی هر تغییری که خواستی توش اعمال بکنی:shock:
برای سوالی که گفتی اگه انجام دادیم دفعه بعد حل شده نباشن میتونی با کمی تغییرات تو فانکشن check_math که من اضافه کردم این کارو بکنی
و برای سوال دوم هم باید هر بار یه عنصر تصادفی از ایندکس ارایه رو انتخاب کنی و بچینی.:wink:
 
آخرین ویرایش:

samaseman

New Member
سلام
عجب سایت فعالی دارین.
سه هفته اس که این پست و گذاشتم چطور هم جواب دادین .فقط وقتمو تلف کردم
 

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

بالا