Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   масштабирование картинки после loadMovie (http://www.flasher.ru/forum/showthread.php?t=85337)

Ulya 20.09.2006 15:58

масштабирование картинки после loadMovie
 
Расскажите плиз, как отмасшабировать картинку после того, как она вставляется в мувиклип через loadMovie?

У меня есть массив объектов, которыми задаются координаты и размеры областей, куда нужно вставлять картинки.
На присваивание координат х и y реагирует, а когда задаю ширину клипа, в который импорт, картинка даже не импортируется? Как правильно сделать? onLoad не работает тоже. Хэлп!!!!!

Код:

function PutObjects() {
        _root.depth++;
        for (q=0; q<_root.Objects.length; q++) {
                var curr:MovieClip = _root.createEmptyMovieClip("obj_"+q, _root.depth);
                _root.depth++;
                curr.onLoad = function() {
                        trace("загрузилась");
                };
                curr._x = _root.Objects[q].x;
                curr._y = _root.Objects[q].y;
                curr._alpha = _root.Objects[q].alpha;
                //curr._width = _root.Objects[q].w;
                //curr._height = _root.Objects[q].h;
                curr.loadMovie(_root.Objects[q].name);
        }
}


Alex T 20.09.2006 16:07

я бы на твоем месте с большой буквы называл только классы, а не переменные и функции.
ширина и высота не устанавливаются, т.к. мувиклип изначально пустой, а заполняется содержимым только после onLoad
мне больше нравиться MovieClipLoader, попробуй его

Alex T 20.09.2006 16:10

по поводу onLoad - http://livedocs.macromedia.com/flash...=00001534.html

Ulya 20.09.2006 16:40

Alex T, спасибо, получилось вот так
Код:

function PutObjects() {
        trace("импорт");
        trace("len="+_root.Objects.length);
        _root.depth++;
        for (q=0; q<_root.Objects.length; q++) {
                var curr1:MovieClipLoader = new MovieClipLoader();
                trace("_root.depth="+_root.depth);
                var curr:MovieClip = _root.createEmptyMovieClip("obj_"+q, _root.depth);
                _root.depth++;
                trace("_root.Objects[q].w "+_root.Objects[q].w);
                trace("_root.Objects[q].h "+_root.Objects[q].h);
                var curr1:MovieClipLoader = new MovieClipLoader();
                var mclListener:Object = new Object();
                mclListener.onLoadInit = function(target_mc:MovieClip) {
                        trace(target_mc._name +" movie loaded");
                        number = target_mc._name.split("_");
                        nu=Number(number[1]);
                        trace("номер "+nu);
                        trace(_root.Objects+" _root.Objects");
                        target_mc._alpha=_root.Objects[nu].alpha;
                        target_mc._x=_root.Objects[nu].x;
                        target_mc._y=_root.Objects[nu].y;
                        target_mc._width=_root.Objects[nu].w;
                        target_mc._height=_root.Objects[nu].h;
                };
                curr._lockroot = true;
                trace("_root.Objects[q].name"+_root.Objects[q].name);
                curr1.loadClip(_root.Objects[q].name, curr);
                curr1.addListener(mclListener);
                trace("_root.Objects[q].name "+_root.Objects[q].name);
        }
}

И ещё вопрос: как программно изменить размеры сцены. Флэшка читает из XML данные и должна поменять диамчески свои размеры. КАК?

Alex T 20.09.2006 16:54

если у тебя флешка запускается в браузере, размеры сцены изменить нельзя
можно только для локальных приложений (ехе), созданных, например в zinc

Ulya 20.09.2006 17:06

Alex T, ну допустим возьмём exe-шник. Средствами макромедии нельзя поменять размер документа? (программно)

Alex T 20.09.2006 17:26

нет, только с помощью сторонних продуктов

Ulya 20.09.2006 17:39

Странно, если во флэше при создании ролика можно менять размер документа, то должен быть программный доступ к этой функции.
С Zinc разобралась, но толку в нём мало, при необходимости можно и перекомпилить мувик. Важно, чтобы его размер брался из внешнего файла.

iNils 20.09.2006 18:27

Кто вам не дает менять размеры сцены через JavaScript?

Ulya 20.09.2006 18:33

iNils, можно по-подробнее? Каким образом?

etc 20.09.2006 18:52

Ulya, флэш в диве.
Например, как здесь: http://ultra.samsung.ru/ (в характеристиках и в «Выиграй Ultra»)

Ulya 20.09.2006 19:00

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

etc 20.09.2006 19:02

Цитата:

Сообщение от Ulya
Мне нужно, чтобы размер флэшки менялся в зависимости от этих данных.

Я вас не понимаю.
Загрузили файл, запустили js-функцию (передав необходимые параметры), которая меняет размер дива с флэшом и вуаля.

Ulya 20.09.2006 19:17

__etc,
можно мне строчку кода, как для самой тупой))))
флэшка не будет встраиваться в хтмл, будет как exe.

Ulya 20.09.2006 19:26

И я не очеь понимаю как пользоваться
fl.getDocumentDOM().width
В Хэлпе написано:
Example
The following example sets the width of the Stage to 400 pixels.
fl.getDocumentDOM().width= 400;
Но это не работает....Почему?

iNils 20.09.2006 19:35

fl.getDocumentDOM().width это JSFL, речь тут идет не об этом.
Вам нужно вызвать из флеша функцию JS, которая прописана на HTML странице.

Ulya 20.09.2006 19:39

Нет, я не понимаю)
Нет у меня никакой хтмл страницы.
Что вот мне надо написать в коде, чтобы изменить размер swf?

etc 20.09.2006 19:40

Цитата:

Сообщение от Ulya
Нет у меня никакой хтмл страницы.

Тогда нельзя.

Ulya 20.09.2006 19:49

даже через JSFL? Должно же быть какое-то решение проблемы. Я хочу сделать констрктор. Флэшка читает конфиг, изменяется, рассовывает подгружаемые картинки и мувики по заданным координатам. Самая банальная задача. Должно быть решение, иначе совсем грустно.

Alex T 20.09.2006 20:20

JSFL - это скрипт для IDE, а не для плеера

etc 20.09.2006 20:21

Цитата:

Сообщение от Ulya
даже через JSFL? Должно же быть какое-то решение проблемы. Я хочу сделать констрктор. Флэшка читает конфиг, изменяется, рассовывает подгружаемые картинки и мувики по заданным координатам. Самая банальная задача. Должно быть решение, иначе совсем грустно.

JSFL работает в IDE и является языком макросов и не более того.

Alex T 20.09.2006 20:27

можно через Zinc, но он уменьшает соответственно и весь контент, это разве что параллельно увеличить (отмасштабировать) весь контент.
Код:

mdm.Forms.MainForm.width=
mdm.Forms.MainForm.height=



Часовой пояс GMT +4, время: 01:18.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.