PDA

Просмотр полной версии : Картинка в htmlText


GydruS
02.04.2009, 09:00
Ребят, здравствуйте!
Делаю информер состояния скайп-аккаунта.
В MovieClip создал экземпляр TextField с именем SkypeStatus.
В первом кадре пишу такой код:

SkypeStatus.html = true;
SkypeStatus.htmlText = '<img src="http://mystatus.skype.com/smallclassic/cargotrust%2Evl" style="border: none;" width="114" height="20" alt="My status" />';
stop();
//


А оно не работает =( Где я затупил?
З.Ы. Если то же самео проделать с проектом под для AS3 - то все работает. Но мне надо под AS2... =(

etc
02.04.2009, 09:03
Пробел перед <img поставьте.

GydruS
02.04.2009, 09:09
Пробел перед <img поставьте.Поставил. Не помогло =(

etc
02.04.2009, 09:21
Хм, вероятно, это проблема самой картинки или сервера.

GydruS
02.04.2009, 10:48
Мои ковыряния привели меня к слдующим выводам: реализация textField на AS2 по своей глупости определяет тип картинки по ее расширению, а не по заголовку. Поэтому и не "съедает" в моем случае "зверя"... =(

Решил сделать по-другому:
_root.createEmptyMovieClip("StatusImage", _root.getNextHighestDepth());
_root.StatusImage.loadMovie("http://mystatus.skype.com/smallclassic/cargotrust%2Evl");
_root.StatusImage.x = 10;
_root.StatusImage.y = 10;
Но это решение мне выдает такой мессадж:
Error opening URL 'http://mystatus.skype.com/smallclassic/cargotrust%2Evl'
Что я опять делаю не так?

etc
02.04.2009, 10:55
Вместо %2E должна быть точка.

GydruS
02.04.2009, 12:09
Так... Ошибку Error opening URL 'http://mystatus.skype.com/smallclassic/cargotrust%2Evl' - поборол - ее вообще провоцировал фаерволл. Дело решилось!
НО!!!! Идем дальше!
В пустом проекте код
_root.createEmptyMovieClip("ld", _root.getNextHighestDepth());
_root.ld.loadMovie("http://mystatus.skype.com/smallclassic/cargotrust%2Evl");
РАБОТАЕТ!!!
А в изменяемом проекте в созданном пустом MovieClip код в первом фрейме
this.createEmptyMovieClip("IntSkypeStatusMC", this.getNextHighestDepth());
this.IntSkypeStatusMC.loadMovie("http://mystatus.skype.com/smallclassic/cargotrust.vl");НЕ работает... getDepth() возвращает 0, _height и _width тоже равны 0...
Друзья, ну чего я не понимаю опять?

lexa2000lexa
02.04.2009, 12:14
У вас не успевает загрузиться, используйте клас MovieClipLoader и обработчик onLoadInit либо onLoadComplete.

GydruS
02.04.2009, 12:43
Ок, написал следующим образом:

trace ('frame code begin');

var my_mcl:MovieClipLoader = new MovieClipLoader();
var myListener:Object = new Object();
myListener.onLoadComplete = function(target_mc:MovieClip) {
trace("load is done on movie clip = "+target_mc);
var loadProgress:Object = my_mcl.getProgress(target_mc);
trace(loadProgress.bytesLoaded+" = bytes loaded at end");
trace(loadProgress.bytesTotal+" = bytes total at end");
};

my_mcl.addListener(myListener);
this.createEmptyMovieClip("clip1_mc", this.getNextHighestDepth());
my_mcl.loadClip("http://mystatus.skype.com/smallclassic/cargotrust%2Evl", clip1_mc);

trace ('frame code end');

На выходе имею только
"frame code begin
frame code end"
(если что, я понимаю, как работает событийно ориентированная модель, и что сообщения о загрузке должны быть после "frame code end", но их нет)

Я уже начинаю думать в странных направлениях, таких как: может это быть связано с тем, что у MovieClip'а-родителя в первом кадре есть stop();??? (он там нужен)

lexa2000lexa
02.04.2009, 13:05
а пробовали через onLoadInit?

GydruS
02.04.2009, 15:29
Пробовал... Эффекта ноль =(

lexa2000lexa
02.04.2009, 16:17
А вы где тестируете, локально?

GydruS
02.04.2009, 16:34
да...

Добавлено через 15 часов 57 минут
хм...
my_mcl:MovieClipLoader = new MovieClipLoader();
myListener:Object = new Object();
trace(myListener);
trace(my_mcl);
Вернули:
undefined
undefined

Ребят, простите уж ламера, но где собака порылась?