ActionScript: كيف يمكنني تدوير حقل نصي؟
-
12-09-2019 - |
سؤال
كيف يمكنك تدوير حقل نص في ActionScript 3.0؟ بمجرد تغيير خاصية الدوران لحقل النص، فإنه لا يعرض.
علي سبيل المثال:
var txtFld:TextField = new TextField();
txtFld.x = 100;
txtFld.y = 100;
txtFld.width = 300;
txtFld.height = 300;
txtFld.text = "Test String";
txtFld.rotation = 90;
addChild(txtFld);
المحلول
بعض المعلومات الأخرى التي تدعم كريستوف هيريمان: Actioncript - نص الدورية
نصائح أخرى
من أجل معرفة النص المستورم، سيكون عليك تضمين الخط.
بديل هو، لنسخ TextField إلى BitmapData
استخدام BitmapData::draw
ثم إنشاء Bitmap
تحتوي على النتيجة، وإضافة ذلك إلى قائمة العرض، بدلا من الأصل TextField
...
هذا له ميزة كبيرة، ولا تحتاج إلى تضمين الخط، مما يقلل من filesize SWF ... Otoh، سوف تفقد كل تفاعل TextField، وستحتاج SWF إلى المزيد من ذاكرة الوصول العشوائي عند اللعب، ولكن الأخير ليس كبيرا جدا ...
للنص أن تبدو سلسة، مجموعة Bitmap::smoothing
ل true
... أيضا، يساعد، إذا قمت بتقديم صورتك بدقة أعلى ... مكافحة التعرجات الزائفة، حتى يتكلم ... عند رسم النص، تمر Matrix
تحجيمها بواسطة عامل 2 وحجم أسفل Bitmap
بواسطة عامل 2 ... بهذه الطريقة سوف تبدو أفضل ...
نايتز
back2dos
أردت فقط إضافة تجربتي لهذا السؤال. أردت أيضا تدوير النص.
في البداية، لمدمج الخط باستخدام ActionScript فقط.
Embed(source="C:\\WINDOWS\\Fonts\\CALIBRI.TTF", fontFamily="Calibri")]
public static const FONT_CALIBRI:Class;
...
var font:Font = new Global.FONT_CALIBRI as Font;
//Font.registerFont(Global.FONT_CALIBRI); //I tried various other things...
ولكن في كل مرة وضعت embedFonts = true
, ، سوف يختفي النص. وأخيرا أعطيت في و emgedded الخط باستخدام فلاش.
var font:Font = new FontClass as Font; //FontClass was exported from Flash IDE
وأخيرا عملت.
var textFormat:TextFormat = new TextFormat(font.fontName);
textField = new TextField();
textField.defaultTextFormat = textFormat; //must be before setting the text
textField.embedFonts = true; //needed to rotate fonts
textField.autoSize = TextFieldAutoSize.CENTER;
textField.antiAliasType = flash.text.AntiAliasType.ADVANCED;
textField.text = ("TESTING")
this.addChild(textField);
يا كيف كنت أهدأ باستخدام فلاش IDE لأي شيء. إذا كان أي شخص قادر على القيام بذلك دون استخدام فلاش، فالرجاء المشاركة!
هذا هو ما عمل لي.
في CS5، كنت بحاجة إلى تغيير إعداد في مربع الحوار تضمين الخط لعمله.
لإظهار مربع حوار تضمين الخط، إما النقر فوق الزر "تضمينه" في لوحة الأحرف، أو انقر نقرا مزدوجا فوق رمز الخط في المكتبة.
بعد ذلك، حدد الخط الذي تريد أن تكون قادرا على تدويره وانقر فوق علامة التبويب ActionScript.
أخيرا، تحقق من تصدير خانة الاختيار ActionScript. اترك الإعدادات الافتراضية وانقر فوق موافق.
فيما يلي الكود الذي استخدمته:
textField = new TextField();
textField.autoSize = TextFieldAutoSize.LEFT;
textField.embedFonts = true;
format.font = "Arial"; // Or whatever the name of your font is in the embed dialog
format.size = 24;
textField.defaultTextFormat = format;
addChild(textField);
إذا ثم قم بتطبيق دوران ذلك الحقل عبر ذلك، ما زلت أرى الخط.
var txtFld:TextField = new TextField();
txtFld.x = 100;
txtFld.y = 100;
txtFld.width = 300;
txtFld.height = 300;
txtFld.text = "Test String";
txtFld.embedFonts = true; // to embed the font ... now roation works
txtFld.rotation = 90;
addChild(txtFld);