2011-12-19 3 views
0

Я хочу добавить дополнительное текстурирование для текущей игры, скажем, оверлейную гранж-текстуру поверх всего.AS3: добавить слой поверх всего?

Весь мой проект (кроме фонового изображения) установлен в основном классе.

Возможно ли это? Как?

Скриншот:

enter image description here

ответ

5

Конечно, просто отключить любой ввод мыши на накладке и это будет как даже его не существует.

public function LuckyHitBeta() 
{ 
    ... 

    var overlay:Sprite = new Sprite(); 
    overlay.addChild(/* your texture goes here as a Bitmap */); 
    overlay.mouseEnabled = false; 
    overlay.mouseChildren = false; 
    addChild(overlay); 
} 
+0

Weird, независимо от того, если бы я связать объект с as3 или вызвать его на его имя, я всегда получаю ' Доступ к неопределенному свойству artGrunge1.' Есть ли в библиотеке, может быть, я должен назвать это локально? –

0

Брус полностью запомнить правильный синтаксис, но не могли бы вы просто сделать:

import flash.display.Stage; 
public class GlobalStage extends MovieClip 

public static var theStage:Stage; 
public static var theRoot:MovieClip; 

public function GlobalStage() { 
    theStage = this.stage; 
    theRoot = this.root; 
} 
var grunge:MovieClip = new Grunge(); 
var topDepth:uint = theStage.numChildren()-1; 
theStage.addChildAt(grunge, topDepth) 
+1

Функция 'addChild' автоматически добавит ее в верхнюю часть стека, поэтому не нужно использовать' addChildAt', если вы не хотите, чтобы она была ниже. –

+0

Спасибо, но я получаю это: 'Попытка доступа недоступного метода numChildren через ссылку со статическим типом flash.display: Stage.' –

+0

@atonparker - true, я думаю, что я использую это только для циклов для добавления объектов с множественными значениями – tetris11

Смежные вопросы