Unconfigured Ad Widget

تقليص

إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

سؤال في MaxScript

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • سؤال في MaxScript

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


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

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

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

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

    تعليق


    • #3
      المشاركة الأصلية بواسطة 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
        هذا يسمى EventHandler
        لكن فى حالة ال TrackBar و فى حالات اخرى تسمى CallBack
        مشكلة ال CallBacks انها محددة سلفا بافعال معينة و للاسف لم اجد اى واحدة تتعلق بتغيير الفلتر
        سأضع سؤال فى السى جى توك عن الموضوع لانى بامانة لا خبرة لى فيه و لم ابحث هذا الموضوع قبل ذلك .

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

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

        تعليق


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

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


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

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


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

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

          تعليق

          يعمل...
          X