سؤال

هل هناك طريقة للحصول على جميع مقاطع الأفلام داخل منطقة مع AS3 ، أحتاج إلى ذلك للقيام بعدة اختيار.

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

المحلول

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

// The list of items contained in the selection.
var selection:Array = new Array();

// The rectangle that defines the selection in the containers coordinate space.
var selectionRect:Rectangle = new Rectangle(x, y, width, height);

// Loop throught the containers children.
for(var a:int; a<container.numChildren; a++){
    // Get the childs bounds in the containers coordinate space.
    var child:DisplayObject = container.getChildAt(a);
    var childBounds:Rectangle = child.getRect(container);

    // Check if this childs bounds against the selection bounds
    if(childBounds.intersects(selectionRect)){
        selection.push(child);
    }
}

نصائح أخرى

أنا متأكد من أنه لا يوجد شيء "مدمج" سيحصل على جميع MovieClips داخل منطقة ما.

الشيء الوحيد الذي يقترب هو ربما getObjectSunderPoint. ستمنحك هذه الطريقة قائمة DisplayObjects تحت نقطة واحدة ، وليس منطقة ، ولكن يمكن استخدامها لإيجاد MovieClips يدويًا في منطقة ما.

يمكن أن يكون لديك العفريت الذي هو "المنطقة". هذا يعني أنه حجم المنطقة التي تريد التحقق منها. لذا ، فقط حلقة من خلال كل MovieClip وتحقق من HitTestObject أو HitTestPoint إذا تصطدم MovieClip مع العفريت. إذا كان الأمر كذلك ، فهذا في هذا المجال. هذه هي الطريقة التي أقوم بإنشائها وسحب وحدات شيء في ألعاب RTS.

حسنًا ، إذا كنت ترغب في التحقق من جميع الكائنات تحت منطقة ما ، فيجب عليك استخدام Loop مع طريقة HitTestPoint. ويمكن تفسير هذه الحلقة عن طريق وضع زيادة كبيرة على هذا للحلقة. وض منطقة المستطيل أو أي منطقة تحددها

لـ (var j: int = rect.x ؛ j0) {trace ("الكائنات التي تم العثور عليها"+كائنات) ؛ }}}

حسنًا ، إذا كنت ترغب في التحقق من جميع الكائنات تحت منطقة ما ، فيجب عليك استخدام Loop مع طريقة HitTestPoint. ويمكن تفسير هذه الحلقة عن طريق وضع زيادة كبيرة على هذا للحلقة. وض منطقة المستطيل أو أي منطقة تحددها

لـ (var j: int = rect.x ؛ j <= rect.width ؛ j ++) {

لـ (var i: int = rect.y ؛ i <= rect.height ؛ i ++) {

var pt: point = new point (x ، y) ؛

كائنات = حاوية.

if (objects.length> 0) {trace ("الكائنات التي تم العثور عليها"+كائنات) ؛ }

}

}

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