03/06/2009

Tips & Tricks 1

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ Π²: ΠžΠΏΡ‹Ρ‚ — Вэги: , , , — Nicolas Prof @ 19:17

Как ΠΈ Ρ€Π°Π½Π΅Π΅ ΠΎΠ±Π΅Ρ‰Π°Π», Π½Π°Ρ‡ΠΈΠ½Π°ΡŽ Ρ€ΡƒΠ±Ρ€ΠΈΠΊΡƒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… совСтов, наблюдСний ΠΈ ΡƒΠΊΠ»ΠΎΠ½ΠΎΠ² ΠΎΡ‚ Π³Ρ€Π°Π±Π»Π΅ΠΉ. ΠŸΠΎΠ΅Ρ…Π°Π»ΠΈ.

  1. Π•ΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ° построСнная Π½Π° собствСнной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ UI ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ…, ΠΎΡ‡Π΅Π½ΡŒ Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… Π½Π°ΠΌΠΈ, ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°ΠΆΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ стандартных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ кстати ΠΎΡ‡Π΅Π½ΡŒ Π΄Π°ΠΆΠ΅ качСствСнно написаны. И ΠΏΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹, ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΊΠ°ΠΊΠΈΡ… Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… дСйствиях Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… ΠΎΡ‚ нас Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ блокирования Ρ„ΠΎΡ€ΠΌΡ‹ ΠΊΡ‚ΠΎ Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ список UI ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΈ Ссли это наши ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ui.active = false, ΠΈΠ»ΠΈ Ссли стандартныС, Ρ‚ΠΎ ui.enabled = false. Но такая опСрация трудоСмкая, совсСм Π½ΠΈΠΊΠΎΠΌΡƒ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ΠΉ лишний Ρ†ΠΈΠΊΠ», плюс ΠΊΠΎ всСму ошибки, Ссли Ρ„ΠΎΡ€ΠΌΠ° слоТная, Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. Π’Π°ΠΊ Π²ΠΎΡ‚, Π΄Π΅Π»Π°Ρ‚ΡŒ это всС Π½Π΅ Π½Π°Π΄ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ изящный ΠΈ Π½Π° порядок Π±ΠΎΠ»Π΅Π΅ быстрый ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΈΠ·-Π·Π° простоты Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΅Ρ‰Π΅ ΠΈ ΡΠ½ΠΈΠΆΠ°ΡŽΡ‰ΠΈΠΉ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ошибки. Для Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ„ΠΎΡ€ΠΌ, ΠΈ Π»ΡŽΠ±Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Sprite. Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅ Ρ‚ΠΎ модальноС ΠΎΠΊΠ½ΠΎ, Ρ‚ΠΎ просто добавляСм Π½Π° Stage, наш Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ слой, Ρƒ мСня ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΎΠ½ называСтся нСзамысловато _blockLayer. Π‘Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ слой заливаСтся посрСдством Graphics Π»ΡŽΠ±Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ с ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ Π½Π΅ ΠΎΠ΄Π½ΠΎ MouseEvent событиС Π½Π΅ ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚ сквозь Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ слой. А Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ быстрый способ, это Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Alpha, Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ BlendMode. Π’Π°ΠΊ ΠΆΠ΅ Π·Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ слой Ρ‡Π΅Ρ€Π½Ρ‹ΠΌ (ΠΊΡ‚ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚, это 0 ΠΈΠ»ΠΈ ΡƒΠΌΠ½Π΅Π΅ 0Ρ…000000), ΠΈ ставим _blockLayer.blendMode = BlendMode.ERASE.
  2. ΠžΡ‚Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ маскам Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π·Π° счСт Rectangle, Ρ‚.Π΅. anyDisObject.scrollRect = new Rectangle(0,0,100,50). Но Π½Π΅ Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅, для прСмущСства ΠΎΡ‚ ScrollRect Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ маскируСмый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ cacheAsBitmap = true. Π•ΡΡ‚ΡŒ нСсколько нСудобств ΠΏΡ€ΠΈ использовании ScrollRect – ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ постоянно ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ anyDisObject.scrollRect = _dynamicRectangleRef, Π½Ρƒ ΠΈ СстСствСнно, Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Rectangle, ΠΈ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π½Π°ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: x, y, width, height.
  3. ΠŸΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с Display List, сдСлайтС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ, objToDelete.visible = false. ΠžΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ памяти, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ всСгда Π½Π΅Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚.
  4. Если ссылкС Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Sound Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ null, Ρ‚ΠΎ тяТСлый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ сразу высвобоТдСн с памяти.
 
ο»Ώ
Menu:
Twitter Updates:
    Archive:
    Control:
    Flash & Flex friends: