Форум 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)
-   -   Изменение ширины и высоты MovieClip (http://www.flasher.ru/forum/showthread.php?t=108256)

deep_freeze 18.02.2008 19:26

Здравствуй, народ!

Возможно, вопрос довольно ламерский, но всё же рискну его задать...

В общем, имеем код (AS 2):

Код:

var myJPGImageAdress:String = "http://somehost/1.jpg";

var my_mc:MovieClip = _root.createEmptyMovieClip("myMovieClip", getNextHighestDepth());

// Размещаем ролик на экране в указанном месте
my_mc._x = 100;
my_mc._y = 100;

// Загружаем картинку
my_mc.loadMovie(myJPGImageAdress, "GET");

// Меняем ширину картинки
my_mc._width = 100;

Фигня заключается в том, что, по логике вещей, последняя строчка кода
Код:

my_mc._width = 100;
должна менять ширину мувиклипа. Но на практике из-за этой строчки мувиклип вообще на экране не отображается никаким образом. Если её закоментировать, то мувиклип отображается в указанной позиции. В чём проблема этой строки кода? Что я сделал не так?

За любую помощь буду очень благодарен.

П.С.: прощу прощения за вопиющее ламерство :)

---
Главной моей целью является загрузить с сайта изображение и сжать его по ширине и высоте до определённого размера (в данном случае 100 на 100 пикселов) и отобразить на экране (что-то вробе thumbnail'а, при наведении на изображение курсора мыши оно должно увеличиваться в размерах; когда пользователь убирает курсор мыши с изображения, оно должно уменьшаться до 100x100).

udaaff 18.02.2008 20:47

1) Загрузка асинхронна (использовать MovieClipLoader.onLoadInit).
2) Изображение наследует позицию, угол, и масшаб мувиклипа, в который оно загружено (если хотите изменяйте не _width, а _xscale).

iNils 18.02.2008 21:25

Добавка к 1-му пункту. Как только началась загрузка в мувиклип, его содержимое удаляется, то есть имеем пустой мувиклип. А по скольку размер мувиклипа - это размер его содержимого, то попытка пустому мувиклипу задать размер, это тоже самое, что вилкой суп есть.

deep_freeze 19.02.2008 15:54

спасибо огромное! :)

Да я сам планировал использовать MovieClipLoader, но тестировал локально, загрузка была моментальная, так что код нормально работал.

Масштабирование при помощи _xscale действительно помогло. :) Но для того, чтобы узнать коэффициент масштабирования, нужно узнать ширину и высоту самого изображения. Скажите, пожалуйста, как это можно узнать средствами ActionScript (не хочется эту задачу перекладывать на РНР скрипт, чтобы ещё потом данные загружать во флеш)... Спасибо ещё раз. :)

udaaff 19.02.2008 16:55

Загрузка немоментальна в любом случае. Хоть локально, хоть нелокально. Размеры изображения можно узнать только после того, как оно загружено и проинициализировано.

Код:

var mcl:MovieClipLoader = new MovieClipLoader();
mcl.addListener(this);

var cont:MovieClip = this.createEmptyMovieClip("cont", this.getNextHighestDepth());
mcl.loadClip("asdf.jpg", cont);

function onLoadInit(target:MovieClip) {
        trace(target._width);
}



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

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