Даже в определениях идиотизма встречается идиотизм.
Цитата:
Идиотизм — устаревшее название идиомы
Идиома в программировании — понятие близкое к понятию шаблона проектирования. Идиомы представляют собой шаблоны проектирования, учитывающие специфику конкретного языка программирования и потому не универсальные. Это хорошие решения проектирования для конкретного языка или программной платформы.
Идиома в программировании — понятие близкое к понятию шаблона проектирования. Идиомы представляют собой шаблоны проектирования, учитывающие специфику конкретного языка программирования и потому не универсальные. Это хорошие решения проектирования для конкретного языка или программной платформы.
Идиотизмы: Sound
для понимания материала необходимы следующие знания:
flash.media.Sound
!true не всегда false
допустим есть класс SSS ( не спрашивайте, почему он такой ):
package { import flash.media.Sound; import flash.media.SoundLoaderContext; import flash.net.URLRequest; public class SSS extends Sound { public function SSS() { super(); } public override function load(stream:URLRequest, context:SoundLoaderContext=null):void { throw new Error( 'неверное действие' ); } } }
Код:
Error: неверное действие at SSS/load()[D:\__workspace\test\src\test.as:25] at flash.media::Sound() at SSS()[D:\__workspace\test\src\test.as:22] at test()[D:\__workspace\test\src\test.as:10]
хотя в справке чётко написано:
Цитата:
При передаче действительного объекта URLRequest конструктору Sound он автоматически вызывает функцию load() для объекта Sound. Если конструктору Sound не передается действительный объект URLRequest, необходимо самостоятельно вызвать функцию load() для объекта Sound, иначе поток не загрузится.
package { import flash.media.Sound; import flash.media.SoundLoaderContext; import flash.net.URLRequest; public class SSS extends Sound { public function SSS() { if ( !true ) { super(); } } public override function load(stream:URLRequest, context:SoundLoaderContext=null):void { throw new Error( 'неверное действие' ); } } }
таким мини-хаком мы блокируем вызов AS3-обёртки класса Sound. сам объект будет создан всё равно.
Всего комментариев 3
Комментарии
07.06.2010 19:27 | |
именно там она и стоит. и именно для того что бы не дёргался load хак и был нужен.
|
21.02.2015 13:07 | |
Полезная конструкция для обхода вызова конструктора суперкласса
Спасибо. |
Последние записи от BlooDHounD
- Обновление blooddy_crypto.swc до версии 0.5.1 (31.03.2016)
- Кто не успел - тот опоздал (19.04.2011)
- Обновление blooddy_crypto.swc до версии 0.3.1 (29.11.2010)
- blooddy_crypto.swc теперь умеет JSON (13.10.2010)
- Загадочный CommaExpression (06.09.2010)