PDA

Просмотр полной версии : атач мувика в нужное место


Snut
21.10.2007, 20:22
структура следующая

_root
|
mapCountry
|
mc

при наведение мышки на mc выполняется следующая функция:


function attachAndColorise(mc) {
_root.mapCountry[mc].createEmptyMovieClip("coloring", this.getNextHighestDepth(););
_root.mapCountry[mc].coloring.attachMovie(mc, mc+"_color", 1);
_root.mapCountry[mc].coloring.[mc]_color._x = _root.mapCountry[mc]._x;
_root.mapCountry[mc].coloring.[mc]_color._y = _root.mapCountry[mc]._y;
_root.mapCountry[mc].coloring.[mc]_color.setRGB(0x00CCFF);
_root.mapCountry[mc].coloring.[mc]_color._alpha = 75;
}


Тоесть создается еще один мувик внутри mc в него атачится из библиотеки мувик и для него меняется цвет и прозрачность, ну грубо говоря этакая подсветка объекта.

и что-то не хочет она работать, может это вред вчерашних вливаний, может еще что-нить, ну вообщем где-то вкралась ошибка. В чем - понять не могу. Просьба помочь.

Kikasso
21.10.2007, 20:37
что такое mc, который вы передаете параметром? строка или клип?

setRGB не есть метод MovieClip

если mc строчка то наверное
coloring.[ mc + '_color' ]._x

и вообще attachMovie и createEmptyMovieClip возвращают ссылку на мувиклип, которой пользоваться на пару порядков удобнее чем этой этажеркой, и для перформанса лучше.

Snut
21.10.2007, 20:43
вообще mc это строка которая является linkage id
setRGB да что-то меня не в ту степь понесло сча сделаю color object
вообщем по-моему мне поспать надо....

udaaff
21.10.2007, 20:50
function attachAndColorise(target:MovieClip, id:String) {
var col = target.createEmptyMovieClip("coloring", target.getNextHighestDepth());
var mc = col.attachMovie(id, id+"_color", col.getNextHighestDepth());
mc._x = target._x;
mc._y = target._y;
mc.setRGB(0x00CCFF);
mc._alpha = 75;
}

attachAndColorise(_root.mapCountry.mc, "id")
PS: Не говоря о смысле.

Snut
21.10.2007, 23:16
udaaff, смысл понял, буду думать...

UPD: хм... не выходит каменный цветок.... нужно приатаченный мувик сделать однотонным и полупрозрачным.... а он не делается...


function attachAndColorise(target:MovieClip, id:String) {
var col = target.createEmptyMovieClip("color_mc", target.getNextHighestDepth());
var mc = color_mc.attachMovie(id, id, color_mc.getNextHighestDepth());
mc._x = target._x;
mc._y = target._y;
var colorise:Color = new Color(color_mc.mc);
colorise.setRGB(0xCC3300);
color_mc.mc._alpha = 75;
}

CorC
22.10.2007, 10:12
А в color_mc разве есть mc? Мое чутье подсказывает что тут надо что-то типа :

var col = target.createEmptyMovieClip("color_mc", target.getNextHighestDepth());
var mc = color_mc.attachMovie(id, id, color_mc.getNextHighestDepth());
mc._x = target._x;
mc._y = target._y;
var colorise:Color = new Color(color_mc[id]);
colorise.setRGB(0xCC3300);
color_mc[id]._alpha = 75;

или вместо жуткого color_mc[id] использовать локальную ссылку на клип т. е. mc

Snut
22.10.2007, 11:36
и снова не получается...

function attachAndColorise(target:MovieClip, id:String) {//for example: target = _root.mapCountry.AIA, id = AIA
//смысл: приатачить поверх мувика который выбран тот же самый мувик из библиотеки сделать его сплошным цветом и полупрозрачным, этакое выделение цветом.
var col = target.createEmptyMovieClip("color_mc", target.getNextHighestDepth());
var mc = color_mc.attachMovie(id, id, color_mc.getNextHighestDepth());
mc._x = target._x;
mc._y = target._y;
var colorise:Color = new Color(mc);
colorise.setRGB(0xCC3300);
mc._alpha = 75;
trace(mc); //выводит undefined
trace(mc._alpha);//выводит undefined
}


//выводит undefined - значит клипа то нет??

Kikasso
22.10.2007, 12:03
var col = target.createEmptyMovieClip("color_mc", target.getNextHighestDepth());
var mc = col.attachMovie(id, id, col.getNextHighestDepth());
Создали ссылку - с ней и работайте.
Кстати, клип создается пустой, нафиг нам лишняя операция:
var mc = col.attachMovie(id, id, 1);

Snut
22.10.2007, 16:38
нашел я ошибку... косяк с координатами:) всем спасибо.