سؤال

إذا أنا خلق رأي حقل إدخال من خلال MXML، ويمكنني أن تعيين عرض ل100%. لكنني لا يمكن أن يبدو للقيام بذلك في وقت التشغيل من خلال أكشن.

وهذا يعمل:

<mx:TextInput ... width="100%" />

وهذا لن تجميع، ويقول العرض هو عدد، وليس سلسلة:

var textinp:TextInput = new TextInput();
someContainer.addChild(textinp);
textinp.width = "100%"

وكيف يمكنني ضبط 100% كحجم على عنصر تم إنشاؤها في وقت التشغيل عبر أكشن؟

هل كانت مفيدة؟

المحلول

وتحتاج فقط إلى استخدام السمة percentWidth، بدلا من السمة width.

وهكذا، السطر الثالث في التعليمات البرمجية سيكون:

textinp.percentWidth = 100;

وهذا تعثرت لي حتى لحظة، أيضا.

نصائح أخرى

إذا أردت لاحقا للرجوع إلى الاعراض بكسل القائم لنفس العنصر، وهنا ما عليك القيام به:

textinp.percentWidth = NaN;

والجواب أعلاه صحيحة، ولكن لا أستطيع التعليق على ذلك كوز أنا جديدة جدا لSO.

وعندما تريد إضافة هذه الوظيفة إلى مكون مخصص، يمكنك أن تفعل شيئا من هذا القبيل:

[PercentProxy("percentMultiplier")]
public function set multiplier(value:Number):void
{
  _multiplier = value;
  invalidSomethingOrDoSomething();
}

public function set percentMultiplier(value:Number):void
{
  multiplier = value / 100;
}

وبطبيعة الحال، عندما كنت أفعل ذلك لعرض والفئات الفرعية الحاويات يبحثون عن percentWidth ، و لا تفتيش للmetada، حتى لا يطلق عليه <م> widthInPercent أو أي شيء، حتى لو كنت تستطيع.

وهنا هو الجواب:

var textinp:TextInput = new TextInput();
someContainer.addChild(textinp);
textinp.percentWidth = 100;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top