![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Mar 2009
Сообщений: 29
|
Доброго времени суток!
По ходу выполнения функции внутри которой динамически формируются мувики, при событии onEnterFrame - теряется переменая. Чувствую что подвох вообще копеечный - но разобраться не могу. var my_array:Array =info.split('^'); for(i=0;i<20;i++) { setTimeout(addPart, 300 * i, my_array[i]); } function addPart() { _root.createEmptyMovieClip("next" + _root.f, _root.f+1); eval("_root.next" +_root.f)._x=_root.f1, eval("_root.next" +_root.f)._y=_root.f2; eval("_root.next" +_root.f).attachMovie("buttons", "test1", 9); eval("_root.next" +_root.f).createEmptyMovieClip("img", 112); eval("_root.next" +_root.f).img._x=-7, eval("_root.next" +_root.f).img._y=-1; eval("_root.next" +_root.f).img.createEmptyMovieClip("imgg", 112); eval("_root.next" +_root.f).img.imgg._x=-87, eval("_root.next" +_root.f).img.imgg._y=-37; loadMovie("http://localhost/data/img/"+ arguments +".jpg", eval("_root.next" +_root.f).img.imgg); var temp=arguments; eval("_root.next" +_root.f).onEnterFrame = function (f) { if(this.test1._currentframe==5) { this.text_movie._visible=true; trace(temp); ///здесь } else { this.text_movie._visible=false; } } } в месте где стоит trace(temp) выходит или значение из моего массива или undefined - т.е. всё нормально, так как надо. Если здесь же добавляю то в это условие не попадаю значения которые при трасировки определяется как undefined. В чём тут дело? |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
1. Если используете строгую типизацию, то используйте ее везде.
2. Забудь при eval и километры путей. Используйте ссылки. 3. Если вы аттачите клип, то зачем внутри его манипуляции с созданием img и imgg? Сделайти сразу готовую структуру. 4. Ваша переменная temp существовала на время жизни исполнения функции addPart, потом он попадала в рай переменных. Ее надо было создавать внутри мувиклипа. var my_array:Array = info.split ('^'); for (var i:Number = 0; i < 20; i++) { setTimeout (addPart, 300 * i, my_array[i]); } function addPart () { var mc:MovieClip = _root.createEmptyMovieClip ("next" + _root.f, _root.f + 1); mc._x = _root.f1 mc._y = _root.f2; mc.attachMovie ("buttons", "test1", 9); var mcImg:MovieClip = mc.createEmptyMovieClip ("img", 112); mcImg._x = -7; mcImg._y = -1; var mcImg2:MovieClip = mcImg.createEmptyMovieClip ("imgg", 112); mcImg2._x = -87 mcImg2._y = -37; mcImg2.loadMovie ("http://localhost/data/img/" + arguments + ".jpg"); |
|
|||||
|
Регистрация: Mar 2009
Сообщений: 29
|
Спасибо за рекомендации. Но даже в таком виде - проблема осталась таже. В трайсе есть undefined, а в условия они не попадают...
|
|
|||||
|
Регистрация: Mar 2009
Сообщений: 29
|
самое смешное что я даже сделал вот так - а в условие всё равно не попадает
for (var i:Number = 0; i < 20; i++) { setTimeout (addPart, 300 * i, i); } function addPart () { var mc:MovieClip = _root.createEmptyMovieClip ("next" + _root.f, _root.f + 1); mc._x = _root.f1 mc._y = _root.f2; mc.attachMovie ("buttons", "test1", 9); var mcImg:MovieClip = mc.createEmptyMovieClip ("img", 112); mcImg._x = -7; mcImg._y = -1; var mcImg2:MovieClip = mcImg.createEmptyMovieClip ("imgg", 112); mcImg2._x = -87 mcImg2._y = -37; mcImg2.loadMovie ("http://localhost/data/img/" + arguments + ".jpg"); mc.temp = arguments; mc.onEnterFrame = function () { if(this.temp == "1") // не попадает в это условие { trace(111); } }; } |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
for (var i:Number = 0; i < 20; i++) { setTimeout (addPart, 300 * i, i); } function addPart (name:String) { var mc:MovieClip = _root.createEmptyMovieClip ("next" + _root.f, _root.f + 1); mc._x = _root.f1; mc._y = _root.f2; mc.attachMovie ("buttons", "test1", 9); var mcImg:MovieClip = mc.createEmptyMovieClip ("img", 112); mcImg._x = -7; mcImg._y = -1; var mcImg2:MovieClip = mcImg.createEmptyMovieClip ("imgg", 112); mcImg2._x = -87; mcImg2._y = -37; mcImg2.loadMovie ("http://localhost/data/img/" + name + ".jpg"); mc.temp = name; mc.onEnterFrame = function () { if (this.temp == "1") { // не попадает в это условие trace (111); } }; } |
![]() |
![]() |
Часовой пояс GMT +4, время: 15:56. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|