|
Страница 1 из 1 [ Сообщений: 18 ] |
Leming
участник
|
|
Не претендую на асса в AS
порадовала эта строчка : trace(pArray[i+1]);
осталась от первоначального трейсинга, просто забыл грохнуть
loadMovie(pArray[i],name); - это что и куда???
pArray[i] - файл с растром, name - динамический MC.
Конкретно с этим проблем нет. Растр выводится корректно. Теперь его залинковать надо...
Проверь, если вообще жмёться. Если нет то просто ты нам на всё показал. container.onRelease = function() { trace(pArray[i+2]); }
Не-а не жмется Курсор не меняется. Трейс ничего не возвращает.
|
|
|
|
|
BlooDHounD
соучастник
|
|
Я не сказал, что это не работает я заказал что это работает очень криво
Хочу признаться. Я тока что написал этот код и у меня всё заработало , я конечно ввёл свою коректировку. Которую описал в верхнем посте.
|
|
|
|
|
bE(o0L
постоянный участник
|
|
для начала решим, что у тебя AS2.0.
потом предположим, что ты создаёшь объекты (mc) и пытаешся навесить на них собыитя с собственными переменными.
из этого всего станет понято следующее -
твой container должен поиметь переменную с которой работаем по нажатию на оный
тобишь:
container._url=pArray[i+2]
container.onPress=function(){getURL(this._url,'_blank')
вот вприницпе такая теория
p.s.
иначе ты вешаешь на onPress переменную pArray[i+2]. а чему она у тебя равна? ну конечно же pArray[(конечное значение i)+2]. И так для всех клипов. это же очевидно.
_________________ можно на ТЫ.
|
|
|
|
|
Leming
участник
|
|
Не фурычит
Прилагаю весь код, может где в другом месте трабл?
var images = new LoadVars();
var pArray = new Array();
var i=0;
var name = 0;
layer=2;
spacing=70;
images.onLoad = function()
{
pArray=this.images.split("|");
for (i=0;i<pArray.length;i=i+3)
{
container=_root.createEmptyMovieClip("img"+name,i);
container.loadMovie(pArray[i],"img"+name);
container._x=i*spacing;
container._url=pArray[i+2];
container.onRelease=function()
{
getURL(container._url,"_blank")
trace(pArray[i+2]);
}
name++;
}
}
images.load("_web.txt");
|
|
|
|
|
bE(o0L
постоянный участник
|
|
BlooDHounD, c твоей стороны наивно полагать будто бы мне следует читать о видимости переменных во флеше так же наивно полагать будто бы элемент pArray находящийся в руте (или где) станет некоей переменной в абсолютно другом клипе с ключом который раз надцать поменяли в цикле.
Leming, твой код это полный абздец. для начала нужно правельно составить данные для loadVars. это как вариант. сразу масса проблем отпадёт (например шаги i+=3 и прочая лишняя арифметика)
далее - когда ты грузишь в созданный клип мувик либо картинку то все onPress и прочая херня конечно же обнуляется
поэтому нужно сделать так:
Код: obj=createEmptyMovieClip("img"+name,name); obj.createEmptyMovieClip('src',1) // <- eto tvoj source clip obj.src.loadMovie(pArray[i]) obj._url=pArray[i+2]; obj.onRelease=function(){ getURL(this._url,"_blank") trace(this._url) }
это всё замени в своём цикле. (заместо obj естественно пишешь свой длинный container)
_________________ можно на ТЫ.
|
|
|
|
|
BlooDHounD
соучастник
|
|
оффтопик: bE(o0L, ок. Путь к гениальности лежит через обсурд. Еслиб почитал бы то прекрасно значл бы, что он увидет эту переменную. Кстати проэесперементировать это очень просто. Займись вечерком.
|
|
|
|
|
bE(o0L
постоянный участник
|
|
оффтопик: BlooDHounD, может покажешь свой эксперемент?
_________________ можно на ТЫ.
|
|
|
|
|
BlooDHounD
соучастник
|
|
оффтопик: var a:String = "b"; var mc:MovieClip = this.createEmptyMovieClip("bu", 0); mc.onEnterFrame = function():Void { trace(a); }
|
|
|
|
|
bE(o0L
постоянный участник
|
|
оффтопик: эта отмазка не канает, ты утверждал что onClipEvent=function(){trace(someArray[someKey])} будет работать а не то что объявленную переменную оттрейсим в clipEvent`e
_________________ можно на ТЫ.
|
|
|
|
|
BlooDHounD
соучастник
|
|
оффтопик: Ты кажет ничё не понимаешь о чём идёт речь. Я утвеждал, что исправил человека не по месту. У него массв так объявлен. И не нужно создавать лишьнию переменную. Ты внёс своё веское "я" там, где оно совершенно не будет работать. Чё ты написал щас я не понимаю … На пример с массивом: var i:Number = 0; var arr:Array = new Array(1, 9, 2, 3, 4, 6); var mc:MovieClip = this.createEmptyMovieClip("bu", 0); mc.onEnterFrame = function():Void { if (i<arr.length) trace(arr[i]); else delete this.onEnterFrame; i++; }
или ты не понимаешь что хочешь мне доказать или ты просто не знаешь самого примитивного во флэше.
|
|
|
|
|
bE(o0L
постоянный участник
|
|
оффтопик: если ты не понимаешь то что я написал, это характеризует тебя не с лучшей стороны. вот твой код (в цикле): container.onRelease = function() {trace(pArray[i+2]);} // второй пост коий является полным бредом. Я показываю правельное решение. (кстати парень походу давно справился) твои потуги списать всё на адресацию переменных либо на мои знания просто смешны. Кстати твой последний пример либо по глупости либо умышленно так же вовсе не соответствует твоим словам. дабы больше не утруждать тебя и не лицезреть бредовый скриптинг, я тебе поясню чего ты утверждаешь: for(n=0;n<10;n++){obj=createEmptyMovieClip('mc'+n,n);obj.onPress=function(){trace(n)}} после того как ты внимательно прочтёшь все посты ещё раз, попробуй продолжит разговор - если конечно сможешь p.s. надеюсь больше ты не станешь писать всякие "правельные" бредни типа var a:String='aaa';mc.onPress=function():Void{trace(a)}, а так же загонять циклы в enterFrame дабы завуалировать свой промах.
_________________ можно на ТЫ.
|
|
|
|
|
bE(o0L
постоянный участник
|
|
BlooDHounD, старик, дело в том что тот пример который ты показал и тот пример который у нашего бедняги вопрошающего абсолютно разные.
А правоту, если хочешь, можешь оставить себе
_________________ можно на ТЫ.
|
|
|
|
|
|
Страница 1 из 1 [ Сообщений: 18 ] |
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
|
|