Проблема решена
Просто я хинт добавлял только после того как загрузилась картинка, а надо было добавлять его сразу (как ваше предложение с прелоадером). Пустой хинт отображается сразу же, а следовательно в дальнейших проверках он уже не null, а следовательно я могу его удалить если убрал мышу с картинки. Потом при получении картинки смотрю есть хинт или нет, если есть, то показываю картинку, если нет, то забиваю на картинку.
Код AS3:
private function showHint(e:MouseEvent):void {
var _request:URLRequest = new URLRequest(e.target.name);
var loader:Loader = new Loader();
loader.load(_request);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, showHint1);
e.target.gotoAndStop(2);
//собственно вот типа прелоадер добавил.
hint = new Panel(20, 20);
hint.x = mouseX + 20;
hint.y = mouseY;
this.addChild(hint);
}
private function showHint1(e:Event): void {
var loader:Loader = e.target.loader as Loader;
loader.x = 10;
loader.y = 10;
f (hint){//а здесь порверяю есть ли хинт, и если есть то отображаю картинку.
this.removeChild(hint);
hint = new Panel(loader.width + 20, loader.height + 20);
hint.x = mouseX + 20;
hint.y = mouseY;
hint.addChild(loader);
this.addChild(hint);
}
}
Теперь надо докрутить проверку на то тот ли это хинт для которого качалась картинка, а то с текущей структурой теоретически будет первая попавшаяся картинка в первый попавшийся хинт писаться. Но общая схема дальше понятна... Я вообще в ступоре был))) вроде и задача простая, а промаялся пару часов))
Добавлено через 2 минуты
Цитата:
Сообщение от cleptoman
не нужна тут статическая.
делаете лоадер свойством класса. при скрытии хинта убивайте насмерть лоадер, прекращайте загрузки.
|
Действительно протупил ...
Подложка в свойства вынесена, а лоадер создается как временный, хотя надо бы наоборот.....
Спасибо