Tips & Tricks 3
-
Papervision: ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ 3Π Π½Π° ΡΠ°ΠΉΡΠ΅, Π² 90% ΡΠ»ΡΡΠ°Π΅Π² Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡ 3D ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΠΌΠ°ΡΡΡΠ°Π±Π΅ 1:1 ΠΊ 2D ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ. Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΡΠ± ΠΊΠ°ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠ΅ΠΊΡΡΡΡΡ Π½Π° Π³ΡΠ°Π½ΡΡ
Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ»ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡΡΡ:
[as]
_camera.z = (_camera.zoom – 1) * _camera.focus + _cubeSide * 0.5;
[/as]
ΠΊΡΠ± Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π½ΡΠ»Π΅Π²ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°Ρ . -
ΠΡΠ»ΠΈ Π΅ΡΡΡ XML Π΄Π΅ΡΠ΅Π²ΠΎ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ, ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎΠΆΠ΅ XML property ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π½Π΅ Π²ΠΎ Π²ΡΠ΅Ρ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ
Π΄Π΅ΡΠ΅Π²Π°. Π ΠΏΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠΈΠ»ΡΡΡΠ°:
[as]
myXML..item.(@id == someID)
[/as]
Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ReferenceError ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ @id Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠ»ΡΡΡ:
[as]
myXML..item.(attribute(‘id’) == someID)
[/as] - ΠΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠ°ΠΉΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΡΠ΅Π±ΡΡΡΠΈΠΉ ΡΠ°Π±ΠΎΡΡ Ρ SharedObject, ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠ²Π΅ΡΡΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΡΠ°Π±ΠΎΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ Π½Π° ΡΠ°ΠΉΡΠ΅, ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ. Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±, ΡΡΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ°ΠΉΠ» .sol. ΠΡΠ»ΠΈ Π²Ρ Π΄ΡΠΌΠ°Π΅ΡΠ΅, ΡΡΠΎ ΠΎΡΠΈΡΡΠΊΠ° ΠΊΡΡΠ° Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ, ΡΠΎ Π²Ρ ΠΎΡΠΈΠ±Π°Π΅ΡΠ΅ΡΡ. Π’Π°ΠΊ ΠΆΠ΅ Π²Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ, ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΠΊΠΎΡΠΎΡΡΡ, Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ SharedObject. ΠΠΎ Π²ΡΠ΅ ΠΆΠ΅, ΠΏΠ°ΡΡ ΡΠ°Π· ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ°ΠΉΠ» ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠ°ΠΊ ΠΏΠΎ ΠΌΠ½Π΅, ΠΏΡΠΎΡΠ΅. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ, Π³Π΄Π΅ ΠΈΡ ΠΈΡΠΊΠ°ΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ Π² Wikipedia
-
Timer ΠΎΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π½Π΅ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° start(), Π° Π»ΠΈΡΡ ΡΠ΅ΡΠ΅Π· Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ delay, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ ΡΠΊΠ°Π·Π°Π»ΠΈ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅. Π§ΡΠΎ Π±Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΠΎΡΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠ°Π·Ρ, ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π΅Π΅ Π²ΡΠ΅Π³ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΠΎΡ ΡΠ°ΠΊ:
[as]
_someTimer.dispatchEvent(new TimerEvent(TimerEvent.TIMER));
_someTimer.start();
[/as][as]
this.someTimerListener(null);
[/as]
ΠΡΠ·Π²Π°ΡΡ ΡΡΠ°Π·Ρ listener, ΠΏΠ»ΠΎΡ ΠΎ ΡΠ΅ΠΌ, ΡΡΠΎ Π²Ρ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ updateAfterEvent -
ΠΠ°ΡΠΊΠ° Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ BlendMode. Π₯ΠΎΡΠΎΡΠ°Ρ Π²Π΅ΡΡ, ΠΊΠ°ΠΊ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ², ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ»ΡΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΡΡ ΠΌΠ°ΡΠΊΡ, ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΠΏΠΎΠ΄ ΠΌΠ°ΡΠΊΠΎΠΉ Π°Π½ΠΈΠΌΠΈΡΡΠ΅ΡΡΡ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Π°Π½ΠΈΠΌΠ°ΡΠΎΡΠΎΠ², ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
Π’Π΅Ρ Π½ΠΈΠΊΠ° ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠ°:
Π΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΌΠ°ΡΠΊΠ° ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΠΏΠΎΠ΄ ΠΌΠ°ΡΠΊΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ BlendMode.LAYER.
[as]
_container.blendMode = BlendMode.LAYER;
[/as]
ΠΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΠΎ ΡΠ»ΠΎΡΠΌ. ΠΠ°ΡΠΊΠ° ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²ΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ. ΠΠ»Ρ ΠΌΠ°ΡΠΊΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ BlendMode.ALPHA.
[as]
_gradMask.blendMode = BlendMode.ALPHA;
[/as]
ΠΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π²ΡΡ ΠΎΠ΄ΡΡΠ΅Π΅ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΌΠ°ΡΠΊΠΈ, ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΠΌΠ°ΡΠΊΠ°, ΠΈ ΡΠΆΠ΅ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ
[as]
_content.mask = _mask;
[/as]Π ΠΈΡΠΎΠ³Π΅, Π²ΡΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π³Π΄Π΅ ΡΠΎ ΡΠ°ΠΊ:
[as]
_container.addChild(_content);
_container.addChild(_gradMask);
_container.addChild(_mask);_gradMask.mouseEnabled = false;
_gradMask.blendMode = BlendMode.ALPHA;
_container.blendMode = BlendMode.LAYER;
_content.mask = _mask;
[/as]P.S.
ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π΄Π»Ρ Π°Π½ΠΈΠΌΠ°ΡΠΎΡΠΎΠ². Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Movieclip, ΠΌΠ΅Π½ΡΠ΅ΠΌ Π΅ΠΌΡ BlendMode Π½Π° Layer, ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ Π² Π½Π΅Π³ΠΎ 3 Movieclip’a: ΠΠΈΠΆΠ½ΠΈΠΉ ΡΠ»ΠΎΠΉ – Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅, Π‘ΡΠ΅Π΄Π½ΠΈΠΉ ΡΠ»ΠΎΠΉ – ΠΌΠ°ΡΠΊΠ°, Π΄Π΅Π»Π°Π΅ΠΌ Π΅Π΅ ΠΌΠ°ΡΠΊΠΎΠΉ Π΄Π»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ, ΠΠ΅ΡΡ Π½ΠΈΠΉ ΡΠ»ΠΎΠΉ – ΠΏΠΎΠ»ΡΠΏΡΠΎΠ·ΡΠ°ΡΠ½Π°Ρ ΠΌΠ°ΡΠΊΠ°, ΠΌΠ΅Π½ΡΠ΅ΠΌ Π΅ΠΉ BlendMode Π½Π° Alpha (Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΡΡ ΠΌΠ°ΡΠΊΡ ΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ ΠΌΠ°ΡΠΊΡ, ΠΈΠ»ΠΈ ΠΏΡΡΠ°ΡΡΡΡ Π΅Π΅ ΡΠΎΠΆΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΠΌΠ°ΡΠΊΠΎΠΉ).P.P.S.
ΠΡΠ»ΠΈ ΠΊΡΠΎ ΡΠΎ Π²ΡΡ ΠΆΠΈΠ·Π½Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ BlendMode, ΡΠΎ Π΄Π»Ρ Π²Π°Ρ Π΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ΅ΠΊΡΡ.
[as]
_mask.cacheAsBitmap = true;
_content.cacheAsBitmap = true;
_content.mask = _mask;
[/as]Π’Π΅ ΠΆΠ΅ ΠΊΡΠΎ Π΄ΡΠΌΠ°Π», ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ BlendMode + cacheAsBitmap, ΡΠΎ ΠΈΡΠΏΡΠ°Π²Π»ΡΠΉΡΠ΅ ΠΊΠΎΠ΄. Π Π°Π·Π²Π΅ ΡΡΠΎ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ cacheAsBitmap Π΄Π»Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ Π²Π΅ΠΊΡΠΎΡΠ°.
