موضوع: سؤال في MaxScript

ردود: 5 | زيارات: 561
  1. #1
    عضو فعال
    صور رمزية BlaCkhOle
    تاريخ التسجيل
    Apr 2007
    المنطقة
    /dev/null
    ردود
    277

    Question سؤال في MaxScript

    كيف يمكن التقاط مثل هذه الاحداث في الماكس سكريبت كما في هذه الصورة


    عندما نقوم بالضغط يمين على trackbar ثم نختار filter ثم نقوم بتفعيل اي من الخيارات الموجودة فيه
    كيف يمكن التقاط هذا الحدث الاخير (تفعيل احدى الخيارات) في الماكس سكريبت ؟


  2. #2
    اذا كنت تقصد بالتقاط الامر .. اى عن طريق الماكس سكريبت listener .. فيجب ان تعرف ان هذه الخاصية لا تنفع دائما ... و هناك اوامر غير قليلة فى الماكس لا يخبرك ال listener عنها .

    على العموم .. ما تسأل عنه يسمى TrackBar.Filter ... و ال enum له هو
    كود:
    filter enums: {#all|#TMOnly|#currentTM|#cbject|#mat}
    و ال Return Value هو احد هذه ال Enums
    بمعنى ...

    مثلا انت اخترت فى الفلتر #all
    الان حينما تكتب
    كود:
    TrackBar.Filter
    الليسنر سيرد عليك ب #all
    اذا كنت لاتريد هذا الفلتر تكتب
    كود:
    TrackBar.Filter = #mat
    وهو كذلك مع كل هذه ال Enums

  3. #3
    عضو فعال
    صور رمزية BlaCkhOle
    تاريخ التسجيل
    Apr 2007
    المنطقة
    /dev/null
    ردود
    277
    اقتباس الموضوع الأصلي كتب بواسطة cyfer معاينة الرد
    اذا كنت تقصد بالتقاط الامر .. اى عن طريق الماكس سكريبت listener .. فيجب ان تعرف ان هذه الخاصية لا تنفع دائما ... و هناك اوامر غير قليلة فى الماكس لا يخبرك ال listener عنها .

    على العموم .. ما تسأل عنه يسمى TrackBar.Filter ... و ال enum له هو
    كود:
    filter enums: {#all|#TMOnly|#currentTM|#cbject|#mat}
    و ال Return Value هو احد هذه ال Enums
    بمعنى ...

    مثلا انت اخترت فى الفلتر #all
    الان حينما تكتب
    كود:
    TrackBar.Filter
    الليسنر سيرد عليك ب #all
    اذا كنت لاتريد هذا الفلتر تكتب
    كود:
    TrackBar.Filter = #mat
    وهو كذلك مع كل هذه ال Enums
    شكرا جزيلا على الرد

    ما اقصده بالتقاط الامر هو مثلا عندما تنشئ زر button فانك تحتاج الى امر يخبرك عندما يتم الضغط عليه مثلا وهو في هذه الحالة:

    on button pressed do

    يعني ان هذا الامر هنا يلتقط حالة من حالات الزر وهي ما اذا تم الضغط عليه.

    وما اريده هو التقاط حالة الfilter في trackbar فقط عندما يقوم المستعمل بتغييره

    يعني شيء من هذا القبيل:

    on trackbar.filter changed do

  4. #4
    هذا يسمى EventHandler
    لكن فى حالة ال TrackBar و فى حالات اخرى تسمى CallBack
    مشكلة ال CallBacks انها محددة سلفا بافعال معينة و للاسف لم اجد اى واحدة تتعلق بتغيير الفلتر
    سأضع سؤال فى السى جى توك عن الموضوع لانى بامانة لا خبرة لى فيه و لم ابحث هذا الموضوع قبل ذلك .

    لكن لنفترض الاسوأ .. اى انه لا طريقة فى ماكس سكريبت لتعرف ان الفلتر تغير ...
    عندما اقابل مواقف من هذا النوع اقوم بالعملية بطريقة عكسية !

    مثلا .. حينما يتم تغير الفلتر .. يتم تغيير ال Wirecolor
    مادام الفلتر لا اعرف له طريقة .. كنت اقوم بجعل العكس يحدث .. اى حينما يتغير ال WireColor .. الى لون معين .. يتغير الفلتر . .. فى النهاية هو امر واحد ايضا او ضغطة زر واحدة

  5. #5
    عضو فعال
    صور رمزية BlaCkhOle
    تاريخ التسجيل
    Apr 2007
    المنطقة
    /dev/null
    ردود
    277
    اقتباس الموضوع الأصلي كتب بواسطة cyfer معاينة الرد
    هذا يسمى EventHandler
    لكن فى حالة ال TrackBar و فى حالات اخرى تسمى CallBack
    مشكلة ال CallBacks انها محددة سلفا بافعال معينة و للاسف لم اجد اى واحدة تتعلق بتغيير الفلتر
    سأضع سؤال فى السى جى توك عن الموضوع لانى بامانة لا خبرة لى فيه و لم ابحث هذا الموضوع قبل ذلك .
    نعم هذا ما اقصده واتمنى ان تطلعني على ما توصلت اليه وجزاك الله خيرا
    فسبب احتياجي لحل هذه المشكلة هو انني احاول برمجة سكريبت بسيط يسهل تغيير هذا الفلتر بسرعة دون الحاجة في كل مرة الى الولوج الى trackbar ثم اختيار الفلتر.

    فعندما اغير الفلتر من السكريبت كما في الصورة يتغير طبعا في trackbar دون مشاكل:


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

    وكما ترى في الصورة فقد غيرت الفيلتر من trackbar ولكنه بحاجة الى تغيير في السكريبت !


    اقتباس الموضوع الأصلي كتب بواسطة cyfer معاينة الرد
    لكن لنفترض الاسوأ .. اى انه لا طريقة فى ماكس سكريبت لتعرف ان الفلتر تغير ...
    عندما اقابل مواقف من هذا النوع اقوم بالعملية بطريقة عكسية !

    مثلا .. حينما يتم تغير الفلتر .. يتم تغيير ال Wirecolor
    مادام الفلتر لا اعرف له طريقة .. كنت اقوم بجعل العكس يحدث .. اى حينما يتغير ال WireColor .. الى لون معين .. يتغير الفلتر . .. فى النهاية هو امر واحد ايضا او ضغطة زر واحدة
    اسف لم افهم جيدا هذه النقطة
    فالمشكل انني لا استطيع ان اعرف ان الفلتر تغير حتى اغير الوايركولور ؟

كلمات دلالية لهذا الموضوع

Bookmarks

قوانين الموضوعات

  • لا يمكنك اضافة موضوع جديد
  • لا يمكنك اضافة ردود
  • لا يمكنك اضافة مرفقات
  • لا يمكنك تعديل مشاركاتك
  •  
  • كود BB مفعّل
  • رموز الحالة مفعّل
  • كود [IMG] مفعّل
  • [VIDEO] code is مفعّل
  • كود HTML معطل