سؤال

لا أحد يعرف كيفية إنشاء حيز النص الديناميكي مع حد واضح وتدوير الزوايا في AS3؟

وأعتقد أنني قد يلزم الأمر إنشاء مقطع فيلم مدورة، وحجمها ووضعها وراء النص.

وحاولت ذلك، ولكن أنا لا أرى أية تغييرات.

var styleRound:StyleSheet = new StyleSheet();
styleRound.parseCSS("h4{cornerRadius:10;borderStyle: solid; borderThickness: 1;}");
tf.htmlText = "<h4>" + hotspotData.caption + "</h4>";
tf.styleSheet = styleRound;
هل كانت مفيدة؟

المحلول

وهنا لائحة من الأنماط CSS المتاحة للالحقول النصية في أكشن 3 . عذرا، لا يوجد نصف قطر الزاوية.

ويمكنك بدوره على الحدود لحيز النص على الحقل النصي كائنات <لأ href = "http://livedocs.adobe.com/flex/3/langref/flash/text/TextField.html#border" يختلط = " noreferrer "> الممتلكات الحدود . ولكن ليس هناك خاصية المتاحة لجولة الزاوية.

وأقترح عليك إنشاء مكون جديد وإضافة الحدود نفسك كما العفريت تحت الحقل النصي. شيء من هذا القبيل:

package
{

import flash.display.Graphics;
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;

public class TextBorder extends Sprite
{
    private static const CORNER_RADIUS:int = 5;
    // display objects
    private var background:Sprite;
    private var field:TextField;

    // properties
    private var _text:String;

    public function TextBorder()
    {
        background = new Sprite;
        field = new TextField;
        field.autoSize = TextFieldAutoSize.LEFT;

        addChild(background);
        addChild(field);

        // TESTING:
        text = "Hello World";
    }

    public function set text(newText:String):void
    {
        _text = newText;
        display();
    }

    public function get text():String
    {
        return _text;
    }

    private function display():void
    {
        field.text = _text;

        var g:Graphics = background.graphics;
        g.clear();
        g.lineStyle(0, 0x0);
        g.beginFill(0xFFFFFF);
        g.drawRoundRect(0, 0, field.width, field.height, CORNER_RADIUS);
    }
}

}

نصائح أخرى

وانتهى بي الأمر خلق المستطيل تقريب في ومضة وتصديره كما فئتها الخاصة - hotspotBG

var hotspotBackground:hotspotBG = new hotspotBG();
hotspotBackground.width = textField.width + 10;
caption.addChild(hotspotBackground);

وأنت لا يمكن تغيير ذلك النفس حقل النص، اعتبارا من 2014 فلاش لا تسمح بذلك.

ما يمكنك القيام به هو حذف الخلفية والحدود، والتي ستترك حقل النص شفافة تماما، ثم إضافة صورة (أداة المستطيل هو أسهل طريقة للقيام بذلك) في مركز الظهير حقل النص، ذلك أن حقل النص في أعلى الصورة (ض محور الحكيم)

قد لا يكون الطريقة التي فكرت في الجحيم ولكن يعمل!

و//you are deleting the background and the borders //and replacing them with an image textbox.background=false; textbox.border=false;

هل يمكن أن مجرد استخدام أنماط CSS؟ شيء من هذا القبيل:

TextInput { 
  borderStyle: solid; 
  borderThickness: 1; 
  cornerRadius: 2; 
}

وأنا لم تختبر هذا، ولكن هذا يجب أن تعطيك زاوية مدورة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top