Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблемы со Stage, не могу получить размеры.. 
V
    Опции темы
belka
  Дата 2.3.2007, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 17.9.2006

Репутация: 2
Всего: 3



Странная проблема конечно.. но вот так уж получилось..
Есть _root.SlideList, в нем создаю новые пустые клипы screen1, screen2, и т.д. затем в них гружу из вне JPG, и тут же мне надо это дело (screen1, screen2, и т.д.) растянуть на весь экран.., т.е. для каждого screen1, screen2, и т.д. задать _widht и _height равными Stage.width и Stage.height соответственно,  но не получается..
вот код:
Код

function create_SlideList() {
    counterSlide = 1;
    while (counterSlide<menu_xml.firstChild.childNodes.length) {
        _root.SlideList.createEmptyMovieClip("screen"+String(counterSlide), counterSlide);
        //контейнер для каждого слайда
        this["slideLoader"+String(counterSlide)] = new MovieClipLoader();
        this["slideLoader"+String(counterSlide)].loadClip(urlSlide, "_root.SlideList.screen"+String(counterSlide));
        set('_root.SlideList.screen'+String(counterSlide)+'._x', counterSlide*Stage.width-Stage.width);
                set('_root.SlideList.screen'+String(counterSlide)+'._width', Stage.width);
        counterSlide++;
    }
    counter_btn = 1;
}

через трейс почему то выдается непонятное undefined и все такое, НО! в онресайзе все эта тема растягивается и сжимается как мне нужно. В чем мой косяг??
--------------------
Просто я живу на улице Ленина и меня зарубает время от времени...aka technogen007
PM MAIL   Вверх
szz
Дата 2.3.2007, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 6
Всего: 33



А что ты трейсишь? Трейса не вижу.
И где тело онресайза?


--------------------
PM   Вверх
belka
Дата 2.3.2007, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 17.9.2006

Репутация: 2
Всего: 3



Цитата(szz @  2.3.2007,  11:38 Найти цитируемый пост)
А что ты трейсишь?

уу ну трейсю я так:
Код

trace(_root.SlideList.screen1._width);
trace(_root.SlideList.screen2._width);
trace(_root.SlideList.screen3._width);


Цитата(szz @  2.3.2007,  11:38 Найти цитируемый пост)
И где тело онресайза? 

да они вроде здесь не существенно, ну да ладна, вот:
Код

resizer = new Object();
resizer.onResize = function() {
    counter_btn = 1;
    while (counter_btn<menu_xml.firstChild.childNodes.length) {
        set('_root.SlideList.screen'+counter_btn+"._width", Stage.width);
        set('_root.SlideList.screen'+counter_btn+"._height", Stage.height);
        set('_root.SlideList.screen'+counter_btn+"._x", counter_btn*Stage.width-Stage.width);
        _root.SlideList._x = -Stage.width*new_Active+Stage.width;
        counter_btn++;
    }
    _root.SlideList._x = -Stage.width*new_Active+Stage.width;
}
Stage.addListener(resizer);

--------------------
Просто я живу на улице Ленина и меня зарубает время от времени...aka technogen007
PM MAIL   Вверх
szz
Дата 2.3.2007, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 6
Всего: 33



Ага.
   Ты пытаешься присвоить _x и _y клипам, которые еще не загрузились.
Думаешь сразу за loadClip они и появятся? Ан нет, лови mcl.onLoadComplete и там уж изменяй размер.

И еще: создавать такую кучу клипЛоадеров расточительно. Создай один, и через него грузи все smile

Добавлено @ 14:36 
set('_root.SlideList.screen'+String(counterSlide) = val;
некрасиво. пиши хотябы
_root.SlideList['screen'+counterSlide] = val;

и чего каунтер насильно в стринг переводить? Так быстрее работает?


--------------------
PM   Вверх
belka
Дата 2.3.2007, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 17.9.2006

Репутация: 2
Всего: 3



szz, клева!! большое спасибо за дельные советы!!!
--------------------
Просто я живу на улице Ленина и меня зарубает время от времени...aka technogen007
PM MAIL   Вверх
belka
Дата 6.3.2007, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 17.9.2006

Репутация: 2
Всего: 3



у меня снова проблемы.. я что то не так пишу, вот код:
Код

function create_SlideList() {
    counterSlide = 1;
    while (counterSlide<menu_xml.firstChild.childNodes.length) {
        _root.SlideList.createEmptyMovieClip("screen"+String(counterSlide), counterSlide);
        urlSlide = menu_xml.firstChild.childNodes[counterSlide].attributes.url;
        var loadListener:Object = new Object();
        this["slideLoader"+String(counterSlide)] = new MovieClipLoader();
        this["slideLoader"+String(counterSlide)].loadClip(urlSlide, "_root.SlideList.screen"+String(counterSlide));
            loadListener.onLoadComplete = function('_root.SlideList.screen'+String(counterSlide):MovieClip, httpStatus:Number) {
            trace(">> loadListener.onLoadComplete()");
            }

        set('_root.SlideList.screen'+String(counterSlide)+'._x', counterSlide*Stage.width-Stage.width);
        counterSlide++;
    }
    counter_btn = 1;
}

это не компилиться, пишет:
Код

**Error** Scene=Scene 1, layer=action, frame=1:Line 119: Parameter name expected
              loadListener.onLoadComplete = function('_root.SlideList.screen'+String(counterSlide):MovieClip, httpStatus:Number) {

Total ActionScript Errors: 1     Reported Errors: 1

как же тогда быть???  smile 

--------------------
Просто я живу на улице Ленина и меня зарубает время от времени...aka technogen007
PM MAIL   Вверх
AlDev
Дата 6.3.2007, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 8
Всего: 50



эм.... 
может все таки вот так? =)
Код

loadListener.onLoadComplete = function(clip:MovieClip, httpStatus:Number):Void {
              trace(">> loadListener.onLoadComplete()");
            }


PM MAIL WWW ICQ YIM MSN   Вверх
belka
Дата 6.3.2007, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 17.9.2006

Репутация: 2
Всего: 3



Цитата(AlDev @  6.3.2007,  14:34 Найти цитируемый пост)
может все таки вот так? =)

 smile  нее.. так не получается.. что такое "clip"?? у меня в цикле грузятся клипы с динамическими именами.., тикими как:
_root.SlideList.screen1, _root.SlideList.screen2, _root.SlideList.screen3 и т.д...


--------------------
Просто я живу на улице Ленина и меня зарубает время от времени...aka technogen007
PM MAIL   Вверх
belka
Дата 8.3.2007, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 17.9.2006

Репутация: 2
Всего: 3



 smile    smile 
--------------------
Просто я живу на улице Ленина и меня зарубает время от времени...aka technogen007
PM MAIL   Вверх
AlDev
Дата 9.3.2007, 04:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 8
Всего: 50



эм. а по тому, как ты пишешь - чушь. ты же объявляешь функцию, которая будет срабатывать при загрузке.
А не просто прописываешь код.
а ты пытаешься объявить... эм... функцию с ее вызовом в одном лице... или че то такое... в общем бредовое...
PM MAIL WWW ICQ YIM MSN   Вверх
belka
Дата 9.3.2007, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 17.9.2006

Репутация: 2
Всего: 3



AlDev, ну так как ж мне писать то??  smile   smile   smile 

Цитата(AlDev @  6.3.2007,  14:34 Найти цитируемый пост)

эм.... 
может все таки вот так? =)
loadListener.onLoadComplete = function(clip:MovieClip, httpStatus:Number):Void {
              trace(">> loadListener.onLoadComplete()");
            }

так не работает!
--------------------
Просто я живу на улице Ленина и меня зарубает время от времени...aka technogen007
PM MAIL   Вверх
szz
Дата 9.3.2007, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 6
Всего: 33



Должно работать так как АlDev говорит.
1. Может не будешь объявлять функцию в цикле? А то как-то бредово получается (все равно считаться будет только последняя).
  Сначала создай объект loadListener, объяви и присвой ему обработчик онЛоадКомплит, создай MovieClipLoader, а потом уже в цикле грузи.
2. И параметры разумеется, не могут быть так динамически сгенерены, как ты пытаешься.
3. И не используй сет! Некрасиво!

4. Зачем делать кастинг в Стринг тут
"screen"+String(counterSlide)
если оно и само закастится?
Достаточно и так:
"screen"+counterSlide
кастинг необходм только там, где не очевидно, что ты хочешь к чему прилепить. В нашем случае вполне понятно, что иначе и не произойдет, как число само превратится в сроку и законкеттируется со "screen"

5. Нельзя лоадКлипу давать просто строковое значение как target!!!
loadClip(urlSlide, "_root.SlideList.screen"+String(counterSlide));
Так нельзя, нужно передать сам объект:
TheClipLoader.loadClip(urlSlide, _root.SlideList["screen"+counterSlide]);
как видишь, я еще и убрал кастинг counterSlideа к строке


6. И где итоговое добавление лисенера к лоадеру??! Как по-твоему лоадер поймет, что эта функция-обработчик имеет какое-то отношение к нему? Вот именно поэтому и не работает вообще ничего.

Т.е. примерно так наверное должно быть:
Код

// вне функции создаем обработчики и грузилки:
var TheLoadListener:Object = new Object();
TheLoadListener.onLoadComplete = function(clip:MovieClip, httpStatus:Number) {
            trace(">> клип \""+clip._name+"\" загрузился.");
}
var TheClipLoader = new MovieClipLoader();

// вот про эту строчку ты совсем забыл!
TheClipLoader.addListener(TheLoadListener);

// сама функция:
create_SlideList = function() {
    counterSlide = 1;
    var urlSlide;// необходимо эту переменную объявить внутри функции, иначе будет использоваться
     // глобальная переменная (ну, глобальная на уровне данного мувиклипа)
    while (counterSlide<menu_xml.firstChild.childNodes.length) {
        _root.SlideList.createEmptyMovieClip("screen"+counterSlide, counterSlide);
        urlSlide = menu_xml.firstChild.childNodes[counterSlide].attributes.url;
        TheClipLoader.loadClip(urlSlide, _root.SlideList["screen"+counterSlide]);
        _root.SlideList["screen"+counterSlide]._x = counterSlide*Stage.width-Stage.width;
        counterSlide++;
    }
    counter_btn = 1;
}



--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Flash"
AlDev
SoWa
  • Если вы хотите предложить кому-либо работу, то пишите или в личку, или оставляйте сообщения в специально предназначеном для этого форуме "Объявления о найме специалистов"
  • Один вопрос - одна тема. Не надо переходов от одного вопроса к другому.
  • Если вы хотите показать какой-нибудь ваш мульт, причём показать, а не предоставить исходник, то вам сюда
  • Вопросы по разработке интернет-приложений на Flex и вопросы по MXML пишите в раздел Flex
  • Смотрим в будущее. ActionScript 3 обсуждается в форуме ActionScript 3
  • Новости из мира Flash.
  • New! [code=ascript][/code] - подсветка ActionScript + wikipedia help

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, AlDev, SoWa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ActionScript 1,2 | Следующая тема »


 




[ Время генерации скрипта: 0.0561 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.