Ciao, grazie della risposta.
Purtroppo non si tratta di un problema di profondità: ho riverificato l'ordine degli elementi nella lista di visualizzazione ed è quello corretto (il video sta nella posizione 0, il menu nella 5 - dopo altri elementi).
Il codice effettivo è un po' problematico da postare, essendo molto lungo e con molte chiamate incrociate (non carica un solo video ma una playlist dinamica); ne posto però uno semplificato che ho trovato in rete e che uso come test che presenta lo stesso bug:

public function FullScreenAir() { super(); // support autoOrients stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE, handleUI); addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event):void{ e.target.removeEventListener(e.type, arguments.callee); createVideo(video su uno spazio web/ in formato.mp4); createControls(); handleUI(); stage.displayState=StageDisplayState.NORMAL; stage.addEventListener(Event.ACTIVATE, attivato); } private function attivato(e:Event){ if(video) setChildIndex(video,0) if(switcher) addChild(switcher); trace("attivato"); } private function createVideo(url:String):void{ video = new Video(); var videoConnection:NetConnection = new NetConnection(); videoConnection.connect(null); var videoStream:NetStream = new NetStream(videoConnection); var clientOBJ:Object = new Object(); clientOBJ.onMetaData = metaDataHandler; videoStream.client = clientOBJ; videoStream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, onAsyncError); addChild(video); video.attachNetStream(videoStream); videoStream.play(url); } private function metaDataHandler(infoObject:Object):void { } private function onAsyncError(e:AsyncErrorEvent):void { } private function onMetadata(e:Event):void { } private function createControls():void{ switcher = new SimpleButton(); var rect:Shape = new Shape(); rect.graphics.beginFill(0xff0000, 1); rect.graphics.drawRect(0, 0, 200, 100); switcher.upState = rect; switcher.downState = rect; switcher.overState = rect; switcher.hitTestState = rect; addChild(switcher); } private function handleUI(e:StageOrientationEvent = null):void{ video.x = (stage.stageWidth - video.width) / 2; video.y = (stage.stageHeight - video.height) / 2; switcher.x = video.x+(switcher.width/2); switcher.y = video.y+ (switcher.height/2); } } }

In questo esempio viene caricato un video e sopra il video viene disegnato un rettangolo.
Tutto funzione, fino a quando non di manda l'app in background, magari premendo il tasto Home, e la si richiama. Quando l'app si riattiva, nonostante venga invocato il metodo "attivato" che, a scanso di equivoci, ridispone il video in secondo piano e il rettangolo in primo, il video va a coprire il rettangolo.

Questo avviene unicamente nella versione tablet!
Nei debug fatti su pc, utilizzando l'ambiente di test di Flash Professional CS5.5 il problema non si riscontra.
Ma sul mio tablet (Asus MemoPad 7) si rileva questo problema (ed anche su altri dispositivi).

Ad esser precisi, quando l'app torna in primo piano, per un attimo si vedono i due elementi nell'ordine giusto, col rettangolo che sovrasta il Video: ma dopo un istante riprende la riproduzione (che in questa versione del codice non si interrompe mai, mentre nel mio codice originale va in pausa alla disattivazione dell'app; ma a quanto pare non è questo a comprometterne il funzionamento); ed è proprio quando ritorna ad essere visualizzato il video che il rettangolo viene coperto.

Non so come venga gestito il flusso video all'interno dell'oggetto Video, ma l'impressione è che l'oggetto sia alla giusta profondità ma il flusso di immagini sia portato in primo piano.
A scanso di equivoci ho anche disabilitato il fullscreen e ribadito il displayState a Normal, ma non pare sia quello il problema.

Spero che adesso il quadro sia completo.

Grazie ancora.