سؤال

وأنا أكتب السيناريو للوصول إلى كافة الحقول النصية ديناميكية في مكتبة ملف فلاش (رابطة العمل المنصف) وتضمين بعض مجموعات الأحرف.

وأنا تكرار خلال كافة الكائنات تبحث عن الحقول النصية، ولكن يبدو أن هناك بعض القضايا عندما تحاول الوصول إلى أعضاء كائن مجموعة. لا توجد لديها أطفال في ملف فلاش، ولكن أستطيع أن أرى أي وسيلة للوصول إليها من وجوه المجموعة المحددة في في CS3 مرجعية لjsfl . المجموعة لديها <م> طبقة غير الموثقة الملكية، من بين أمور أخرى، ولكن يبدو أن يحتوي فقط إشارة إلى نفسه.

CS4 إشارة تعرف على أعضاء الملكية لكائن المجموعة.

وهكذا أسئلتي، وكيف تفعل ذلك الوصول إلى الأطفال من كائن المجموعة في فلاش C3 jsfl API السيناريو؟

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

المحلول

ومجرد فك التجميع () الأشكال أولا. ثم يمكنك تشغيل العادي الخاص بك "النص" تحويل بعد ذلك. لا ينبغي أن يصب الوثيقة لتجمع له أي آثار فنية حقيقية.

var doc = fl.getDocumentDOM();
var results = fl.findObjectInDocByType("shape", doc);
for (var i = 0; i < results.length; i++) 
{
    if ( results[i].obj.isGroup )
    {
        doc.selection = [results[i].obj];
        doc.unGroup();
    }
}

نصائح أخرى

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

وماذا يمكن أن يكون مربكا كنت تفكر أن تجميع الكائنات على خشبة المسرح يجعل الشكل، فإنه لا. "المجموعات" من الكائنات على خشبة المسرح موجود فقط في واجهة التحرير فلاش لسهولة التحرير وسير العمل. مرة واحدة قمت بنشر أنها ليست مجمعة في الواقع فرنك سويسري / أكشن.

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

هل أنت متأكد من أنك تعمل مع الأشكال؟ وينبغي أن يكون شكل لا تكون قادرة على أي طفل الفعلي جانبا من الرسومات (له خاصية الرسومات، مثل العفريت)، والتي لا يمكن حقا اعتبار الأطفال. انهم أشبه قيمة العقار الرسومات.

والشكل لا تمتد DisplayObjectContainer، لذلك أنا متأكد من أنه لا يمكن أن يكون الأجسام عرض الطفل مثل العفريت أو مقطع فيلم على سبيل المثال.

ويجب أن تكون آمنة تخطي تلك إذا تبحث عن الحقول النصية.

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

وأنت لم تحدد ما إذا كنت تستخدم fl.findObjectInDocByType () لمسح وثيقة للكائنات النص والشكل (مجموعات المحتملة)، ولكن هذا سيكون فكرة جيدة كذلك.

<وأ href = "http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm؟context=LiveDocs_Parts&file=00004151.html" يختلط = "نوفولو noreferrer" > http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm؟context=LiveDocs_Parts&file=00004151.html

وأعتقد أن البرنامج النصي التالي تتبع قيمة نص كافة المجالات دينامية النص في FLA ما لم يكن هناك بعض الحالات متداخلة سيئة أن فاتني. في أي حال، يجب أن نأمل أن تحصل على الذهاب. أن نكون حذرين من أن تحتاج إلى تشغيل البرنامج النصي من القائمة أوامر من أجل fl.findObjectInDocByType () ليس لرمي خطأ. راجع التعليقات في الرابط اعلاه للمزيد من المعلومات.

// Look for text objects
var doc = fl.getDocumentDOM();
var typeToSearchFor = "text";
var results = fl.findObjectInDocByType(typeToSearchFor, doc);

for(var i = 0; i < results.length; i++)
{
    if(results[i].obj.textType == "dynamic")
    {
        doWhatever(results[i].obj);
    }
}

// Look for shapes
typeToSearchFor = "shape";
results = fl.findObjectInDocByType(typeToSearchFor, doc);

var textObjects;

for(var i = 0; i < results.length; i++)
{
    var members = results[i].obj.members;

    for(var j = 0; j < members.length; j++)
    {
        if(members[j].elementType == "text" && members[j].textType == "dynamic")
        {
            doWhatever(members[j]);
        }
    }
}


function doWhatever(textObj)
{
    fl.trace(textObj.getTextString());
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top