1- من به حرفي كه ميزنم ايمان دارم و همونطور كه گفتم به ActionScript تسلط كامل دارم. منظورم ادعا كردن نيست فقط اطمينان ميدم كه اين كار با استفاده از ActionScript شدني نيست. كمي توضيح ميدم:
كليه method ها class ها و object هاي built-in درون فلش داراي يك index يا شماره گر در يك آرايه دو بعدي هستند كه مشخص كننده اون عملگر براي كامپايلر است. كامپايلر پس از دريافت شماره گر آن را به همراه پارامتر ارسال شده و ActionScript Keywords به كد مياني تحت عنوان bytecode تبديل ميكند و در انتها bytecode بدست آمده به PCode تبديل مي شود كه چيزي شبيه زبان ماشين است و فقط براي player قابل فهم است و اين همان swf بدست آمده است. مثال:
دستور زير را در نظر بگيريد:
;("trace("hi
دستور trace داراي شماره گر 100و 4 درون آرايه ASnative مي باشد. بنابراين دستر بالا معادل زير است:
;(["ASnative(100,4).apply(null, ["hi
اين كد موقع تبديل به bytecode به صورت زير تبديل ميشود:
;("bytecode__("960400006869002600__
هر كدام از 3 مدل دستور بالا را كه در نرم افزار فلش وارد كنيد نتيجه يكساني دارد. در آحر PCode ساخته ميشود كه به صورت زير است:
'push 'hi
trace
end
من تمامي جدول ASnative را مي شناسم به __bytecode__ هم آشنايي دارم. در فلش متد ها و كلاسهاي زيادي هست كه هنوز به صورت رسمي اعلام نشده و عده كمي از وجود اونها اطلاع دارند ولي بايد بگم كه دستوري براي حذف right click وجود ندارد!
2- متوجه نميشم كه سی دی مالتی مدیا فقط با اکشن اسکریپت چه ربطي به موضوع دارد! ولي آره البته اين كار رو ميتونم بكنم (گرچه field كاري من نيست)
3- در راهنماي flash و همچنين macromedia website صريحا ذكر شده كه اين كار شدني نيست:
the Settings and About items still appear, because they cannot be disabled
ببينيد flash player در چندين مدل ارايه ميشه:
- stand alone
- test movie
- embeded in an executive file
- browser plugin
در 3 مدل اول با دست بردن در فايل player با استفاده از يك hex editor ساده ميشه خيلي از كارها از جمله برطرف كردن right click رو انجام داد. اما در مدل 4 كه داخل web بدين صورت است اين كار به راحتي امكان پذير نيست و علتش محدوديتي است كه Flash ActiveX نصب شده روي كامپوتر بوجود مي آورد. Flash ActiveX نصب شده يك فايل ocx. هست كه در شاخه system32 از سيستم عامل windows قرار ميگيره. اگر اين فايل را با hex editor بررسي كنيد ميبينيد كه About و Settings جزوي از default context menu هستند و اصلا مربوط به player هستند و ربطي به فايل swf ندارند. البته امكان حذف و يا تغيير محتواي اونها هست ولي اين كار فقط player كامپيوتر شما را تغيير ميده در حالي كه player هاي بقيه افراد كه از macromedia website دريافت ميشه بدون تغيير باقي ميمونه!
در هر حال چيزي كه شما ديديد اگر درون browser بوده يا حذف right click با استفاده از JavaScript است كه قبلا توضيح دادم و يا دست بردن در فايل flash.ocx كه در اين صورت فقط كامپيوتري كه با اون كار مي كردبد را شامل ميشده.
4- در صورتي كه باز هم به حرف من شك داري بگو تا email مستقيم Gary Grossman خالق زبان ActionScript را بهت بدم. ميتوني ازش بپرسي كه آيا دستوري براي حذف مستقيم default context menu وجود داره يا نه
