المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : كيفية انشاء قائمة منسدلة لمشروع أندرويد جزء ثاني


azizsoft
07-06-2019, 01:53 AM
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين


نواصل ان شاء الله شرح انشاء قائمة منسدلة لمشروع أندرويد
بداية نقوم بتحويل عنصر المشهد الرئيسي " سورة السيارة " الى موفي كليب ونسميه box1 = الغاية من هذا الاجراء
أن نستغل هذا الموفي كليب لااضافة صفحات أو فريمات داخله .

الان نضغط ضغط مزدوج على الموفي كليب الثاني وهي القائمة ونضيف داخلها الازرار كما نشاء
في المثال المرفق أضفت فقط 3 ازرار للانتقال الى 3 مستويات كتوضيح ويمكن طبعا أن تضيف ازرار اخرى
وعدل في الكود مجرد نسخ ولصق فقط غير في ارقام وقيم الدوال .

لاحظ أنه في كل زر اضفنا الكود التالي :


b1.addEventListener(MouseEvent.CLICK, ClickHandler1);

function ClickHandler1(event:MouseEvent):void
{
var myTween1:Tween = new Tween( MovieClip(root).Pannel_mc, "x", Back.easeOut, 50, 500, 1, true);
MovieClip(root).btnSlidePanel.rotation = 180;
MovieClip(root).box1.gotoAndStop(2);
}


عند الضغط على الزر الاول تنفذ الاوامر التالية :

1 يتم ارجاع القائمة الى مكانها الطبيعي بحركة توين في ثانية واحدة 1
2 ارجاع قيمة دوران الزر الى الافتراضي 180
3 أمر الى الموفي كليب box1 بالتوقف عند الفريم الثاني وهو هنا المستوى الاول

وبكل بساطة يتم تكرار هاته الاكواد بالنسخ واللصق لكل زر وتغيير القيم فقط
يمكن يضا استغلال الاكواد التالية عوض الاولى وهي بطريقة مختلفة :


import flash.events.*;
import flash.events.MouseEvent;
import flash.display.MovieClip;
import fl.transitions.Tween;
import fl.transitions.easing.*;


this.b1.addEventListener(MouseEvent.CLICK, handleButtonClick);
this.b2.addEventListener(MouseEvent.CLICK, handleButtonClick);
this.b3.addEventListener(MouseEvent.CLICK, handleButtonClick);

function handleButtonClick(event:MouseEvent):void
{
var button:DisplayObject = DisplayObject(event.target);
if(event.target == b1){
var myTween1:Tween = new Tween( MovieClip(root).Pannel_mc, "x", Back.easeOut, 50, 500, 1, true);
MovieClip(root).btnSlidePanel.rotation = 180;
MovieClip(root).box1.gotoAndStop(2);
}

if(event.target == b2){
var myTween2:Tween = new Tween( MovieClip(root).Pannel_mc, "x", Back.easeOut, 50, 500, 1, true);
MovieClip(root).btnSlidePanel.rotation = 180;
MovieClip(root).box1.gotoAndStop(3);
}

if(event.target == b3){
var myTween3:Tween = new Tween( MovieClip(root).Pannel_mc, "x", Back.easeOut, 50, 500, 1, true);
MovieClip(root).btnSlidePanel.rotation = 180;
MovieClip(root).box1.gotoAndStop(4);
}

}




يمكن اعتماد هذا المثال في خصوص مشروع بمشاهد صغيرة
أما بالنسبة للقائمة ذات القوام الكبيرة نعتمد عنها المصفوفات ونخزن فيها الازرار أو العناوين .
وتكون الاكواد كالاتي :


import flash.events.*;
import flash.events.MouseEvent;
import flash.display.MovieClip;
import fl.transitions.Tween;
import fl.transitions.easing.*;


var buttons:Array = new Array(b1,b2,b3);



for(var i:int=0;i< buttons.length;i++)
{

buttons[i].addEventListener(MouseEvent.CLICK,buttonsClickHan dler);
}

function buttonsClickHandler(event:MouseEvent):void {

var button:DisplayObject = DisplayObject(event.target)

switch(button.name)
{
case "b1":
var myTween1:Tween = new Tween( MovieClip(root).Pannel_mc, "x", Back.easeOut, 50, 500, 1, true);
MovieClip(root).btnSlidePanel.rotation = 180;
MovieClip(root).box1.gotoAndStop(2);
break;
case "b2":
var myTween2:Tween = new Tween( MovieClip(root).Pannel_mc, "x", Back.easeOut, 50, 500, 1, true);
MovieClip(root).btnSlidePanel.rotation = 180;
MovieClip(root).box1.gotoAndStop(3);;
break;
case "b3":
var myTween3:Tween = new Tween( MovieClip(root).Pannel_mc, "x", Back.easeOut, 50, 500, 1, true);
MovieClip(root).btnSlidePanel.rotation = 180;
MovieClip(root).box1.gotoAndStop(4);
break;
}
}



ملاحظة :
اذا كانت الازرار عبارة عن button يتم الاعلان عن متغير بهذا الشكل

var button:DisplayObject = DisplayObject(event.target)



واذا كانت الازرار عبارة عن موفي كليبات يتم الاعلان عن المتغير كما يلي :


var button:MovieClip = MovieClip(event.target);





حمل المثال المرفق وعاين ما تم شرحه وطبعا يمكن التعديل عليه بسهولة وايضا استغلاله .

أستودعم الله

امجدمحمد
07-06-2019, 09:24 AM
الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

امبراطور الحريه
07-06-2019, 04:40 PM
السلام عليكم ورحمة الله وبركاته
بارك الله فيك أخى الكريم عزيز . مبدع دئماً . ربنا يجعله فى ميزان حسناتك

اميجو
13-06-2019, 02:07 PM
جزاك الله خيرا