Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Установка размера загружаемого на сцену внешнего объекта (http://www.flasher.ru/forum/showthread.php?t=177314)

brotherhood 29.03.2012 14:00

Установка размера загружаемого на сцену внешнего объекта
 
Привет Всем!
Подскажите уважаемые знатоки.

при таком написание, после нажатия кнопки идет закачка файла(симулятор закачки показывает) но объекта невидно на сцене.
если я убираю параметры:
swHands.height = 358;
swHands.width = 252;
то файл появляется на сцене после нажатия кнопки.

вот собственно код
Код AS3:

swHands_btn.addEventListener(MouseEvent.CLICK,OnClickHands);
 
function OnClickHands(e:MouseEvent):void {
        gotoAndPlay(2);
        var swHands:Loader = new Loader();
    swHands.load(new URLRequest("images/swHands.jpg"));
        swHands.height = 358;
        swHands.width = 252;
        swHands.x=377.7;
        swHands.y=122.4;
        addChild(swHands);
        }

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

iNils 29.03.2012 14:09

Сначала нужно загрузить объект, а потом задать ему размеры.

Сейчас, вы пытаетесь дать размеры пустому контейнеру. А пустота не имеет размеров. Размеры имеет содержимое контейнера, но содержимого нет, оно еще не загружено.

anmelegov 29.03.2012 14:29

Код AS3:

swHands.addEventListener(Event.COMPLETE, setSize);
function setSize(event:Event):void {
  swHands.removeEventListener(Event.COMPLETE, setSize);
  event.width = xxx;
  event.height = xxx;
}


brotherhood 29.03.2012 14:59

Цитата:

Сообщение от iNils (Сообщение 1071720)
Сначала нужно загрузить объект, а потом задать ему размеры.

Сейчас, вы пытаетесь дать размеры пустому контейнеру. А пустота не имеет размеров. Размеры имеет содержимое контейнера, но содержимого нет, оно еще не загружено.

Объект загружается после клика мыши. там же прописано. при прописи параметров положения .x.y объект появляется там где и должен, но большого размера(какой и есть) а если прописать его размеры то он также загружается только его нет на сцене.

brotherhood 29.03.2012 15:01

Цитата:

Сообщение от anmelegov (Сообщение 1071729)
Код AS3:

swHands.addEventListener(Event.COMPLETE, setSize);
function setSize(event:Event):void {
  swHands.removeEventListener(Event.COMPLETE, setSize);
  event.width = xxx;
  event.height = xxx;
}


Вот так?? :

Код AS3:

swHands_btn.addEventListener(MouseEvent.CLICK,OnClickHands);
 
function OnClickHands(e:MouseEvent):void {
        gotoAndPlay(2);
        var swHands:Loader = new Loader();
swHands.load(new URLRequest("images/swHands.jpg"));
        swHands.x=377.7;
        swHands.y=122.4;
        addChild(swHands);
 
}
 
        swHands.addEventListener(Event.COMPLETE, setSize);
function setSize(event:Event):void {
  swHands.removeEventListener(Event.COMPLETE, setSize);
  event.width = 252;
  event.height = 358;
}

или вот так ?:
Код AS3:

swHands_btn.addEventListener(MouseEvent.CLICK,OnClickHands);
 
function OnClickHands(e:MouseEvent):void {
        gotoAndPlay(2);
        var swHands:Loader = new Loader();
swHands.load(new URLRequest("images/swHands.jpg"));
                swHands.addEventListener(Event.COMPLETE, setSize);
function setSize(event:Event):void {
  swHands.removeEventListener(Event.COMPLETE, setSize);
  event.width = 252;
  event.height = 358;
}
    swHands.x=377.7;
        swHands.y=122.4;
        addChild(swHands);
 
}


brotherhood 29.03.2012 15:01

Цитата:

Сообщение от anmelegov (Сообщение 1071729)
Код AS3:

swHands.addEventListener(Event.COMPLETE, setSize);
function setSize(event:Event):void {
  swHands.removeEventListener(Event.COMPLETE, setSize);
  event.width = xxx;
  event.height = xxx;
}


не работает

iNils 29.03.2012 15:03

Цитата:

Объект загружается после клика мыши. там же прописано
Он не загружается. Загрузка происходит асинхронно выполнению кода. То есть, что если вы написали swHands.load (), не значит, что для строки кода ниже объект уже будет загружен. Загрузка произойдет "когда-там-далеко" и весь код внутри функции выполнится.
Для того, чтобы знать когда произошла загрузка, нужно подписаться на событие и уже там производиться все действия которые были у вас ниже swHands.load ()
Пример кода дал выше anmelegov.

Добавлено через 1 минуту
И еще, или вы нормально форматируете код, то есть табуляцию делаете лесенкой, а не кашей, либо я закрою тему.

derhab 29.03.2012 15:13

Цитата:

Сообщение от anmelegov (Сообщение 1071729)
Код AS3:

swHands.addEventListener(Event.COMPLETE, setSize);
function setSize(event:Event):void {
  swHands.removeEventListener(Event.COMPLETE, setSize);
  event.width = xxx;
  event.height = xxx;
}


у event есть width и height?)

brotherhood 29.03.2012 15:14

Цитата:

Сообщение от iNils (Сообщение 1071749)
Он не загружается. Загрузка происходит асинхронно выполнению кода. То есть, что если вы написали swHands.load (), не значит, что для строки кода ниже объект уже будет загружен. Загрузка произойдет "когда-там-далеко" и весь код внутри функции выполнится.
Для того, чтобы знать когда произошла загрузка, нужно подписаться на событие и уже там производиться все действия которые были у вас ниже swHands.load ()
Пример кода дал выше anmelegov.

Добавлено через 1 минуту
И еще, или вы нормально форматируете код, то есть табуляцию делаете лесенкой, а не кашей, либо я закрою тему.

Так Неработает:

Код AS3:

swHands_btn.addEventListener(MouseEvent.CLICK,OnClickHands);
function OnClickHands(e:MouseEvent):void {
        gotoAndPlay(2);
        var swHands:Loader = new Loader();
            swHands.load(new URLRequest("images/swHands.jpg"));
swHands.addEventListener(Event.COMPLETE, setSize);
function setSize(event:Event):void {
        swHands.removeEventListener(Event.COMPLETE, setSize);
        event.width = 252;
        event.height = 358;
}
        swHands.x=377.7;
        swHands.y=122.4;
        addChild(swHands);
 
}


derhab 29.03.2012 15:17

вы сами читаете, что пишете?
чему вы задаете ширину и высоту?


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

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