![]() |
|
||||||||||
|
|||||
|
Modus ponens
|
Да млииииин, ну как же еще объяснить... ну абсолютно все равно что бы не возвращал dispose() к условию в if() это вообще отношения не имеет! При чем тут универсальность кода!? Я уже объяснил зачем там этот if.
Вот нашел какой-то промежуточный вариант кода, надеюсь, это как-то поможет понять зачем это было нужно... public function createAlert(alertType:String, o:Object, removePrevious:Boolean):SForm { if (!removePrevious) _abase.removeMovieClip(); else _backSteps++; _abg.removeMovieClip(); /*if (_screenCapture) _screenCapture.dispose(); _screenCapture = new BitmapData(Stage.width, Stage.height); _screenCapture.draw(_root); _screenCapture.applyFilter(_screenCapture, new Rectangle(0, 0, Stage.width, Stage.height), new Point(0, 0), new BlurFilter(4, 4, 1)); _abg = GFX.grid(_root, Stage.width, Stage.height, _screenCapture);*/ _abg = GFX.rct0000(_root, Stage.width, Stage.height, GFX.WHITE, 30); _abg.onRelease = function():Void {}; _abg.useHandCursor = false; _abase = _root.createEmptyMovieClip("abase" + _root.getNextHighestDepth(), _root.getNextHighestDepth()); var ssubj:String = alertType; var isErr:Boolean; switch(alertType) { case "404": case SForm.TEXT_ALERT: isErr = false; break; default: isErr = true; } var rect:Rectangle = new Rectangle(0, 0, 220, 220); switch (String(o)) { case FilterObject.BLUR: rect.height = 140; break; case FilterObject.GLOW: rect.height = 195; rect.width = 226; break; case FilterObject.DROP_SHADOW: rect.height = 180; rect.width = 340; break; case FilterObject.BEVEL: rect.height = 210; rect.width = 345; break; case EffectObject.IRIS: rect.height = 225; rect.width = 225; break; case EffectObject.FADE: case EffectObject.FLY: case EffectObject.ZOOM: rect.height = 195; rect.width = 175; break; } switch (alertType) { case SForm.CONFIRM: rect.height = 120; rect.width = 260; break; } var fprops:FillProps = new FillProps(FillProps.FILL_FLAT, [100], [], [GFX.WHITE]); var lprops:LineProps; var style:String; if (!isErr) { lprops = new LineProps(1, GFX.DARK_RED, 100, true); style = "err"; } else { lprops = new LineProps(1); style = "alert"; } var vprops:MCProps = new MCProps(fprops, lprops, 10, false); var _box:SBox = new SBox(_abase, rect, vprops); _box.isAlert = true; _box.setStyle(style); switch (alertType) { case SForm.PALETTE: _box.setForm(SForm.PALETTE); _box.lable = "Choose Color"; break; case SForm.FONT_SELECTOR: _box.setForm(SForm.FONT_SELECTOR); _box.lable = "Choose Typeface"; break; case SForm.TRIM: _box.setForm(SForm.TRIM, _timeline.step, _timeline.aSlide); _box.lable = "Trim track"; break; case SForm.TEXT_ALERT: _box.setForm(SForm.TEXT_ALERT, Number(o)); _box.lable = "Warning"; break; case "404": _box.setForm("_404", 0, arguments[1]); _box.lable = "Resource not found"; break; case SForm.EFFECT: _box.setForm(SForm.EFFECT, 0, o); _box.lable = o + " Properties"; break; case SForm.FILTERS: _box.setForm(SForm.FILTERS, 0, o); _box.lable = o + " Filter Properties"; break; case SForm.CONFIRM: _box.setForm(SForm.CONFIRM, 0, o); _box.lable = "Confirm"; break; default: throw new ERR("no such alert: "+alertType, this); break; } _box.name = alertType + _forms.length; _inactiveForm = _broadcastingForm; _broadcastingForm = _box.getForm(); if (!removePrevious) { _box.x = Math.round(Stage.width/2 - _box.w/2); _box.y = Math.round(Stage.height/2 - _box.h/2); } else { _box.x = Math.round(Stage.width/2); _box.y = Math.round(Stage.height/2); } _forms.push(_box); _box.getBackGround().filters = [new DropShadowFilter(5, 45, 0, .4, 6, 6, 1, 1)]; keepOnTop(); dispatchEvent(new FormManagerEvent(FormManagerEvent.FORM_OPEN, _box.getForm())); return _box.getForm(); } public function deleteAlert(frm:SForm):Void { var del:SBox; var i:Number; var l:Number = _forms.length; for (i = 0; i < l; i++) { if (_forms[i].getForm() == frm) { del = SBox(_forms.splice(i, 1)[0]); } } if (!del) del = SBox(_forms.pop()); dispatchEvent(new FormManagerEvent(FormManagerEvent.FORM_CLOSE, del.getForm())); del.deleteContent(); delete del; if (_backSteps > 1) { _inactiveForm = _forms[_forms.length - _backSteps].getForm(); _backSteps--; _broadcastingForm = _forms[_forms.length - _backSteps].getForm(); _forms[_forms.length - _backSteps].swapTo(_abg); } else { delete _abg.onRelease; _abg.removeMovieClip(); _broadcastingForm = _inactiveForm; } if (_screenCapture) _screenCapture.dispose(); _screenCapture = null; }
__________________
Hell is the possibility of sanity |
|
|||||
|
Banned
[+4 01.02.09]
[+1 01.02.09] |
Цитата:
Кстати, мой хинт - делать это в следующем кадре. |
|
|||||
|
Modus ponens
|
ээээ... чего? в каком кадре? у меня всего 1 кадр...
Да и хелп тут ни при чем, этот метод спокойно работал до определенного момента, а потом, по непонятной причине изза него стал вылетать плеер а вместе с ним и браузер. Прийми как факт, нет в этом коде ничего ошибочного, а скомпилированый результат вешает плеер. Поверь, если ты посмотришь баг репорты в JIRA адобовской, то ты увидишь, что таких ситуаций сотни - просто для AVM2 их правят - а для AVM1 - они никого уже не интересуют.
__________________
Hell is the possibility of sanity |
|
|||||
|
Banned
[+4 01.02.09]
[+1 01.02.09] |
Хелп еще очень причен - он не дает понять как все работает на самом деле и потому создается поле для ошибок. Хелп создает иллюзию, что в коде нет ошибок, а код на самом деле лишь "безошибочен" для абстрактного движка из хелпа, а не для реального. Просто для AVM1 уже найдены решения почти для всех глюков, а глюки AVM2 еще впереди и это нормально.
PS Следующий кадр может быть и на однокадровом мувике ![]() |
|
|||||
|
Modus ponens
|
Чесно говоря я не уверен... в Зен Буддизме есть такой способ объяснения: бамбуковой палкой по лбу
это когда все уже перепробовано, а ученик все еще не понял... ну, смотри:в AVM2 есть извесный баг: плеер вылетает вместе с браузером когда делается попытка перемотать звук на не загрузившуюся / не существующую позицию. В АVM1 есть баг - applyFilter() с некоторыми фильтрами приводит к тому, что плеер вылетает и вместе с ним браузер. Но есть разница: в AVM2 этот баг будут править, и, в итоге в каком-нибудь из апдейтов к (хочется верить) 10-му плееру этот баг все-таки исправят. А вот баг с фильтром не исправят уже никогда, потому что ты его даже запостить не сможешь, потому что некуда его запостить, и нет в природе людей, которые бы стали его исправлять. Потому что исходники Флеш плеера принадлежат Адоби, и их не интересует исправлять что либо в AVM1, потому что им это не нужно, и никто другой это делать не будет, потому что ни у кого другого исходников Флеш плеера нет. А придумывать обходные пути, как можно было бы все-таки разблурить картинку - так их можно сколько угодно понавыдумывать. Например, не разблуривать ее вовсе, а запечатлеть как есть и отправить PHP скрипту, который бы ее разблурил и вернул Но это же бред! Точно такой же бред, как и решение разблурить картинку на другом кадре. А может еще скажешь по дате или звездам сверяться? Если понедельник, то не блурить, а если четверг - то самое то?
__________________
Hell is the possibility of sanity |
|
|||||
|
4AM Games
|
Цитата:
Цитата:
Ладно wvxvw и chingachgoog, вы что курите?
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Modus ponens
|
@Nirth:
Если бы 11-й плеер вышел осенью, тогда моя фраза не имела бы смысла... а так у меня назревает встречный вопрос... а что вы пьете? ![]() ЗЫ. Курю сигареты Noblesse - самая дешевая дрянь, которую можно купить в супере возле дома ![]()
__________________
Hell is the possibility of sanity |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Ну индеец известно что курит, а вот Олежка, видимо, решил присоединиться
![]() 24000 Последний раз редактировалось etc; 03.01.2009 в 14:38. |
|
|||||
|
Modus ponens
|
Клевета! я курю обычные сигареты, и ничего противозаконного в них нету
Просто болею, вот и скучно, и делать нечего ![]()
__________________
Hell is the possibility of sanity |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:18. |
|
|
« Предыдущая тема | Следующая тема » |
|
|