سؤال

هل من الممكن أن يكون عرض متعددة للجسم عرض نفسه؟ (على سبيل المثال نفس الكمبيوتر متعددة اللاعبين اللعبة باستخدام تقسيم الشاشة)

وهذا نموذج التعليمات البرمجية التي فشلت في العمل التالي:

    var content: Sprite = new Sprite();
    var v1: Sprite = new Sprite();
    var v2: Sprite = new Sprite();

    with(content.graphics) {
        lineStyle(2, 0xff0000);
        drawCircle(100, 100, 80);

        lineStyle(5, 0x009999);
        drawRect(50, 80, 200, 30);
    }

    v1.addChild(content);
    v1.x = 0;
    v1.y = 0;
    v1.scrollRect = new Rectangle(0, 0, 100, 100);
    addChild(v1);

    v2.addChild(content);
    v2.x = 100;
    v2.y = 0;
    v2.scrollRect = new Rectangle(0, 0, 100, 100);
    addChild(v2);

وأعتقد أن هذا من شأنه أن يجعل اثنين من منافذ العرض (v1 وv2) من نفس الكائن (content). ولكن عندما راجعت مستندات، طريقة DisplayObjectContaner / addChild، فإنه يقول:

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

هل هناك حل لذلك؟


ونتيجة حصل

والنتيجة المتوقعة (مقلد)

النتيجة المتوقعة (مقلد) http://img337.imageshack.us/img337/ 7914 / 222mq4.png


والتقديم إلى صورة نقطية على النحو الذي اقترحه انتي هو فكرة عظيمة، ولكن العفاريت المقدمة لا تكون قادرة على التقاط أحداث الماوس. هل هناك طريقة لإعادة توجيه نقرات الماوس على الصورة النقطية لتحريك النقرات على العفاريت الأصلية؟

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

المحلول

وأسهل طريقة للقيام بذلك هو أن تكون هناك النقطية التي يتم تحديثها مع محتويات الكائن العرض الأصلي، وشيء من هذا القبيل:

var bitmap:Bitmap = new Bitmap(new BitmapData(1,1));
addChild(bitmap);

addEventListener(Event.ENTER_FRAME,enterFrameHandler);

function enterFrameHandler(event:Event):void {
    bitmap.bitmapData.dispose();
    bitmap.bitmapData = new BitmapData(displayObject.width, displayObject.height, true, 0x00000000);
    bitmap.bitmapData.draw(displayObject);
}

نصائح أخرى

وطريقة واحدة يمكن أن تذهب هي إلى اعتماد نمط MVC، حيث لديك نموذج الذي يتحكم منطق اللعبة وغيرها، والطبقات عرض منفصلة التي تتحكم في العرض. بهذه الطريقة يصبح من أكثر سهولة لديهم وجهات نظر متعددة من نفس المكان.

إذا كنت وضعت تقديم إلى صورة نقطية داخل العفريت، ثم يمكنك التقاط نقرات الماوس.

ومايك

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