|
|
|||||
Регистрация: Apr 2007
Адрес: Новосибирск
Сообщений: 98
|
Не ловит событие загрузки
Подскажите пожалуйста, почему не отлавливается событие загрузки. Не вызывается функция onLoaded
package { import flash.events.EventDispatcher; import flash.events.Event; import flash.display.Loader; import flash.net.URLRequest; import flash.events.MouseEvent; import flash.external.ExternalInterface; public class mcArray extends EventDispatcher { public var _arr:Array; private var _data:parsedXML; private var loader:Loader; private var loaded:Number=0; public var id:String; public var constId:Number; public function mcArray (d:parsedXML) { _arr=new Array(); _data=d; } function onLoaded (e:Event) { trace("=)") e.target.y=e.target.height-175 e.target.x=e.target.width-120 loaded++; if (loaded==_data._arr.length()) { dispatchEvent (new Event("Loaded")); } } function handleClick (e:MouseEvent) { var id=e.currentTarget.jid ExternalInterface.call("Load",id); var i:int=0; for each (var el:Array in _data._arr) { if (String(el[1])==id)constId=i; i++; } dispatchEvent (new Event("Clicked")); } function make() { for each(var i:Array in _data._arr) { var tmp:container=new container; trace("=(") loader=new Loader(); loader.addEventListener(Event.COMPLETE,onLoaded); loader.load(new URLRequest(i[0])); with (tmp) { jid = String(i[1]); tfmc.tf.text=i[2]; cont.addChild(loader); addEventListener(MouseEvent.CLICK,handleClick); cont.buttonMode=true; tfmc.mouseChildren=false tfmc.buttonMode=true; } _arr.push(tmp); } //dispatchEvent (new Event("Loaded")); } } } |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
сорри за оффтоп, но когда в описании вакансии указано "умение разбираться в чужом коде", я кажется представляю, что они имеют в виду...
Из конструктора ничего не вызывается. Что вообще планировалось сделать? |
|
|||||
Регистрация: Apr 2007
Адрес: Новосибирск
Сообщений: 98
|
Вобщем проблема в том что когда я гружу картинки
loader=new Loader(); loader.addEventListener(Event.COMPLETE,onLoaded); loader.load(new URLRequest(i[0])); Вызывается все из другого класса - т.е. картинки вижу они грузятся, но событие не срабатывает Последний раз редактировалось O.K.; 20.04.2010 в 22:48. |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
А, ну ок. Короче, у вас не код, а тихий ужас. Но понимание этого придёт со временем)
Так же следует добавить что вы не указали что вызываете метод make - я сам должен додумывать? А ошибка в том, что на Event.COMPLETE надо подписывать не loader, a loader.contentLoaderInfo
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
Регистрация: Apr 2007
Адрес: Новосибирск
Сообщений: 98
|
Точно! Спасибо, забыл)
Кстати, а почему тихий ужас? Тоесть, откровенно говоря "это я ещё старался" - раньше я тупо всё лепил в один класс, а тут както решил постараться разбить на несколько: один грузит данные другой отображает итп.. Если можно, еще вопрос: Это как я понял бред, а как всетаки отцентровать кпримеру картинку закруженную в событии COMPLETE? Последний раз редактировалось O.K.; 21.04.2010 в 00:07. |
|
|||||
Регистрация: Jan 2009
Адрес: Северный островок дефолт-сити
Сообщений: 144
|
Ну что беглым взглядом увидел:
- само собой проблема с ТАБами; - переменные странно называются, одни с подчёркивания, другие - нет. Обычно приватные с подчёркивания, а тут и те и те (и наоборот соответственно); - желательно явно писать типа функции (ну то есть public); - обработчики должны быть private функциями; - надо явно объявлять тип возвращаемого значения, то бишь ":void"; - ну Адоби рекомендует ещё обработчики называть специальным образом, можно у них где то почитать про это; - помоему что-то слышал про то, что оператор with не рекомендуют использовать, типа это остатки первого AS. Но в этом не уверен. Сам лично ни разу не использовал. Вот как-то так я бы сказал. Насчёт расстановки скобок спорный вопрос, я сам открывающую привык ставить на новой строке, но так и не понял как правильней считается (хотя какая разница на самом деле). Замечал что в основном открывающую ставят на той же строке что и определение функции, я же почему-то привык иначе. Цитата:
Наверное если больше одного действия будет выполняться с этой картинкой то такой способ даже быстрее будет работать. Ведь не придётся каждый раз лезть в геттер объекта "e". Но в таких тонкостях я не силён, это только предположение Последний раз редактировалось cauchy; 21.04.2010 в 13:05. |
Часовой пояс GMT +4, время: 00:30. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|