سؤال

كيف يمكنك تدوير حقل نص في 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);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top