Actionscript-swap vizuális tárgyak, edapskov

ActionScript: csere a vizuális tárgyak

Írásakor ActionScript kód gyakran kell cserélni két gyermek vizuális objektumot egy konténer objektum. Általános szabály, hogy szükséges, hogy jelöljenek ki egy adott objektum a „előtér”, hogy ne fedjék egyes-objektumok „szomszédok”. Mint már korábban említettük vizuális tárgyak, a legtöbb esetben jár MovieClip (ActionScript 2.0) és / vagy a Sprite (ActionScript 3.0). És ez a példa a film klipek és sprite meg kell vizsgálni a megoldás, hogy a mozgás a vizuális tárgy az előtérben.

Tehát, mondjuk van két videóklip (a jobb áttekinthetőség érdekében, akkor átfedő téglalapok piros és fekete színben). És szeretnénk kattintva MovieClip egér költözött előtérbe. Az ActionScript 2.0, akkor használja ezt a módszert swapDepths () (amely dinamikusan változik a „mélysége” a helyét egy videóklip) és getNextHighestDepth () (vissza a legtöbb szabad mélység).

ActionScript 2.0 kód:

/ * Új, az 1. videóklip (piros téglalap) * / var mc_1: MovieClip = _root.createEmptyMovieClip ( "mc_1" _ root.getNextHighestDepth ()); mc_1.beginFill (0xff0000,100); 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; / * Létrehozása 2. videóklip (fekete téglalap) * / 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; / * Kattintson a videóklip fog futni a funkció előtérbe * / mc_1.onPress = előtérben; mc_2.onPress = előtérben; / * Funkció változó muviki helyek * / function előtérben ()

Ha zavaros használatával _parent a kódot a fenti, akkor tudhatja meg, hogy a poszt «szülő tulajdonságait kijelző tárgyak ActionScript».

By the way, ez a módszer működik az MovieClip-k által létrehozott kézzel az Adobe / Macromedia Flash.

ActionScript 3.0, hogy módosítsa a fészkelő mélység MovieClip-s és Sprite-ok használhatók még szélesebb körű arzenáljának módszerek és tulajdonságok. De gondoljunk csak használ setChildIndex () metódus (lehetővé teszi, hogy dinamikusan változtatni a fészkelő mélység) és tulajdonságai numChildren (visszaadja az alanyok száma a „gyerekek” a szülő objektum).

ActionScript 3.0 kód:

/ * Import osztály * / import flash.display.Sprite; import flash.events.MouseEvent; / * Új, az 1. sprite (piros téglalap) * / var sprite_1: Sprite = new Sprite (); sprite_1.graphics.beginFill (0xff0000,100); sprite_1.graphics.drawRect (0,0,350,200); sprite_1.graphics.endFill (); this.addChild (sprite_1); sprite_1.x = 50; sprite_1.y = 50; / * Új 2. Sprite (a fekete téglalap) * / var sprite_2: Sprite = new Sprite (); 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; / * Kattintson a sprite fog futni a funkció előtérbe * / sprite_1.addEventListener (MouseEvent.CLICK, előtérben); sprite_2.addEventListener (MouseEvent.CLICK, előtérben); / * Funkció változó sprite helyek * / function előtérben (esemény: MouseEvent): void

Mint látható, ez elég egyszerű. És hoztam Nem minden lehetséges módon oldja meg a problémát.