PDA

Просмотр полной версии : Добавление "своей" переменной в MovieClip. Теряется значение.


devil86
25.03.2009, 03:27
Добрый день.

Столкнулся с ситуацией когда надо создать мувиклип, загрузить в него картинку и изменить загруженой картинке цвет( с помощью Color:setRGB() ).
Собственно проблема в этом казалось бы простом коде.
var loadListener:Object = new Object();
var mcLoader:MovieClipLoader = new MovieClipLoader();

var mymc = _root.createEmptyMovieClip('tee', 10);
// "своя" переменная
mymc.my = 0xf00f00;
mcLoader.addListener(loadListener);
mcLoader.loadClip('http://localhost/1.png', mymc);



loadListener.onLoadComplete = function(mc:MovieClip)
{
trace(mc.my); // undefined
}

trace выводит undefined. Неужели для такого простого случая надо наследовать свой класс.
Как быть в таких случаях. Спасибою

iNils
25.03.2009, 04:02
Когда вы начинаете загружать что-либо в мувиклип, то все его содержимое выгружается, в том числе и пользовательские переменные.

devil86
25.03.2009, 04:47
Я так и подумал. Так а как быть? Мувиков несколько, они именуются однотипно(img0, img1, img2...), "выкушывать" идентификатор по имени и брать данные из глобального массива? Как-то коряво... :confused:

iNils
25.03.2009, 06:18
Ну, писать
var loadListener:Object = new Object();
- тоже коряво, и то указывать, то не указывать типизацию - также. Но вас же это не смущает.
Только непонятно, зачем вам цвет внутри клипа с картинкой? Все равно функционала внутри нет, чтобы это там использовать.

nOobCrafter
25.03.2009, 12:31
а елси сделать массив где елементы - цвета, и брать их типа color[mc._parent.i]
не обязательно же использовать сво-ва самого контейнера.
З.Ы. а при трейсе по onLoadInit что говорит?