Actionscript schimbarea obiectelor vizuale, edapskov

ActionScript: schimbarea obiectelor vizuale

Când scrieți codul ActionScript, este adesea nevoie să schimbați două obiecte vizuale în interiorul unui obiect container. De regulă, este necesar să împingeți un anumit obiect la "prim plan", astfel încât acesta să nu fie blocat de alte obiecte - "vecini". Ca obiecte vizuale menționate anterior, în majoritatea cazurilor, există MovieClip (în ActionScript 2.0) și / sau Sprite (în ActionScript 3.0). Și este, de exemplu, clipurile video și sprites că va fi luată în considerare soluția la problema deplasării unui obiect vizual în prim-plan.

Deci, să presupunem că avem două (dreptunghiuri pentru o mai mare claritate, acesta va fi suprapunerea de culori roșu și negru) clip video. Și vrem ca filmul să meargă în prim-plan făcând clic pe mouse. În ActionScript 2.0, puteți utiliza pentru această metodă swapDepths () (care se schimbă în mod dinamic „adâncimea“ locația unui clip video) și de getNextHighestDepth () (returnează cel mai mare număr de adâncime liberă).

Codul ActionScript 2.0:

/ * Crearea unui clip video primul (dreptunghi rosu) * / var mc_1: MovieClip = _root.createEmptyMovieClip ( "mc_1", _ root.getNextHighestDepth ()); mc_1.beginFill (0xff0000100); mc_1.moveTo (0,0); mc_1.lineTo (350,0); mc_1.lineTo (350,200); mc_1.lineTo (0.200); mc_1.lineTo (0,0); mc_1.endFill (); mc_1._x = 50; mc_1._y = 50; / * Crearea unui clip video doilea (dreptunghi negru) * / var MC_2: MovieClip = _root.createEmptyMovieClip ( "MC_2", _ root.getNextHighestDepth ()); mc_2.beginFill (0x000000,100); mc_2.moveTo (0,0); mc_2.lineTo (350,0); mc_2.lineTo (350,200); mc_2.lineTo (0.200); mc_2.lineTo (0,0); mc_2.endFill (); mc_2.x = 150; mc_2.y = 150; / * clic pe movieclips va porni funcția din prim plan * / mc_1.onPress = prim plan; mc_2.onPress = prim plan; / * care modifică clipurile video în locuri * / funcția prim-plan ()

Dacă sunteți confundat folosind _parent în codul de mai sus, atunci vă refer la "Proprietatea părinte a obiectelor de ecran în ActionScript".

Apropo, această metodă va funcționa pentru MovieClips creat manual în Adobe / Macromedia Flash.

În ActionScript 3.0, puteți utiliza un arsenal și mai vast de metode și proprietăți pentru a modifica adâncimea atașărilor MovieClip și Sprite. Dar luați în considerare doar un exemplu folosind metoda setChildIndex () (vă permite să modificați dinamic adâncimea atașamentului) și proprietatea numChildren (returnează numărul obiectelor copil în interiorul obiectului părinte).

Codul ActionScript 3.0:

/ * clase de import * / import flash.display.Sprite; importul flash.events.MouseEvent; / * crea primul sprite (dreptunghi roșu) * / var sprite_1: Sprite = Sprite nou (); sprite_1.graphics.beginFill (0xff0000100); sprite_1.graphics.drawRect (0,0,350,200); sprite_1.graphics.endFill (); this.addChild (sprite_1); sprite_1.x = 50; sprite_1.y = 50; / * crează a doua sprite (dreptunghi negru) * / var sprite_2: Sprite = Sprite nou (); sprite_2.graphics.beginFill (0x000000,100); sprite_2.graphics.drawRect (0,0,350,200); sprite_2.graphics.endFill (); this.addChild (sprite_2); sprite_2.x = 150; sprite_2.y = 150; / * clic pe sprites va rula funcția foreground * / sprite_1.addEventListener (MouseEvent.CLICK, prim plan); sprite_2.addEventListener (MouseEvent.CLICK, prim plan); / * funcția care schimbă spritele în locuri * / funcția prim-plan (eveniment: MouseEvent): void

După cum puteți vedea, totul este destul de simplu. Și nu am dat toate căile posibile pentru a rezolva sarcina.