Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.11.2015, 16:47
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 31  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Цитата:
Сообщение от exsites Посмотреть сообщение
А вот так можно?
Ну конечно можно! Другое дело, что new_img в этом месте выполнение программы будет равен null, как и img. И зачем тебе это?
__________________
Поймай яблоко 2!

Старый 06.11.2015, 17:03
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 32  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Цитата:
И невозможность получить результат выполнения функции в любом месте это "надевание трусов через голову".
И в каком месте нельзя получить результат выполнения функции?
__________________
There is no thing in this world that is not simple.

Старый 06.11.2015, 19:47
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 33  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
резоннее спросить, в какое время.
__________________
Reality.getBounds(this);

Старый 06.11.2015, 20:34
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 34  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Ну что ж вы, сир, не вдумываетесь, временами, в столь простые вещи?
Неужто вы хотите полагать, что код, за телом функции линейно следующий лишь выполнится не сразу, а после окончания загрузки?
В таком бы случае, зачем там нужна функция вообще? По вашей логике, там было проще прописать загрузку, а ассет на строке чуть ниже стал уже б загружен.
Нет, здесь, внимание, такое есть понятие, как асинхронность. Сиё, извольте объяснить, означает, что слушаем мы "onComplete" событие лишь для того, чтобы поймать то место, самое то место, где ассет наш уже загружен, а всё, что далее идёт за функцией начинает выполняться в тот же миг, как начинается загрузка.

Извольте иной раз, прежде, чем язык винить - представить, будто вы не понимаете чего-то, и почитать примеры и разъяснения из справки и других полезных книжек.
__________________
There is no thing in this world that is not simple.

Старый 06.11.2015, 20:43
exsites вне форума Посмотреть профиль Отправить личное сообщение для exsites Найти все сообщения от exsites
  № 35  
Ответить с цитированием
exsites

Регистрация: Nov 2015
Сообщений: 46
А я и не понимаю, как получить мне новую координату и ширину в следующей функции?

Код AS1/AS2:
var x_ = 320;
var y_ = 0;
var new_width = stage.stageWidth - 320;
stage.addEventListener(Event.RESIZE, resizeHandler);
function resizeHandler(event:Event):void {
 if (stage.stageWidth == '800') {
 	x_ = 320;
 	new_width = stage.stageWidth - 320;
 } else {
 	x_ = 0;
 	new_width = stage.stageWidth;
 }
}
 
 
 
function completeLoadImage(event:Event):void
{
 
containerImages_mc.removeChildAt(0);
var bitmapData:BitmapData = event.target.loader.content.bitmapData as BitmapData;
var bitmap:Bitmap = new Bitmap(bitmapData);
containerImages_mc.addChildAt(bitmap, 0);
 
 
var w= bitmap.width;
var h= bitmap.height;
var ar= w / h; 	
var new_h = new_w / ar; 
 
containerImages_mc.x = x_; // вот тут получить координату
containerImages_mc.y = y_;
var new_w = new_width; // вот тут получить новую ширину
 
containerImages_mc.width = new_w;
containerImages_mc.height = new_h;
var bitmapW:Number = bitmap.width;
var bitmapH:Number = bitmap.height;
 
bitmap.width = Math.floor(bitmapW);
bitmap.height = Math.floor(bitmapH);
}

Старый 06.11.2015, 20:46
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 36  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Цитата:
Сообщение от ZackMercury Посмотреть сообщение
Ну что ж вы, сир, не вдумываетесь, временами, в столь простые вещи?
Неужто вы хотите полагать, что код, за телом функции линейно следующий лишь выполнится не сразу, а после окончания загрузки?
В таком бы случае, зачем там нужна функция вообще? По вашей логике, там было проще прописать загрузку, а ассет на строке чуть ниже стал уже б загружен.
Нет, здесь, внимание, такое есть понятие, как асинхронность. Сиё, извольте объяснить, означает, что слушаем мы "onComplete" событие лишь для того, чтобы поймать то место, самое то место, где ассет наш уже загружен, а всё, что далее идёт за функцией начинает выполняться в тот же миг, как начинается загрузка.

Извольте иной раз, прежде, чем язык винить - представить, будто вы не понимаете чего-то, и почитать примеры и разъяснения из справки и других полезных книжек.
Что-то у меня от таких формулировок затошнило.

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

Старый 06.11.2015, 20:59
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 37  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
А я и не понимаю, как получить мне новую координату и ширину в следующей функции?
Сделайте одну функцию отвечающую за масштабирование изображения, если оно загружено.
Код AS3:
function update(newWidth:Number, newHeight:Number):void
{
    if (!myImage)
        return;
    // здесь изменяем размеры
}
Изменился размер - вызвали update(), есть уже у нас изображения - ок, меняем размер, нет - ничего не происходит.
Загрузилось изображение - вызвали update(stage.stageWidth, stage.stageHeight), выставили текущие размеры сцены.

Старый 06.11.2015, 21:00
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 38  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
exsites, друг мой, успокойтесь вы, расслабьтесь, отдохните.
Существуют в мире программирования глобальные - общие, и локальные переменные.
Работающая программа на коем-то ни было языке - это совокупность глобальных переменных(классов с переменными), кои изменяются по всяким событиям, на которые мы добавим слушатель.
Представьте себе это, как таймлайн, на котором одно за другим по очереди всплывают какие-то события, и код ваш обрабатывает их, тот, который внутри обработчиков(функций).
__________________
There is no thing in this world that is not simple.


Последний раз редактировалось ZackMercury; 06.11.2015 в 21:12.
Старый 06.11.2015, 21:20
exsites вне форума Посмотреть профиль Отправить личное сообщение для exsites Найти все сообщения от exsites
  № 39  
Ответить с цитированием
exsites

Регистрация: Nov 2015
Сообщений: 46
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Да, нет ни одного довода в пользу асинхронных методов там, где нужны (были бы удобнее) синхронные.
Вот как-то я об этом же.

Цитата:
Сообщение от udaaff Посмотреть сообщение
Сделайте одну функцию отвечающую за масштабирование изображения, если оно загружено.
Код AS3:
function update(newWidth:Number, newHeight:Number):void
{
    if (!myImage)
        return;
    // здесь изменяем размеры
}
Изменился размер - вызвали update(), есть уже у нас изображения - ок, меняем размер, нет - ничего не происходит.
Загрузилось изображение - вызвали update(stage.stageWidth, stage.stageHeight), выставили текущие размеры сцены.
Так опять же переменные получаются внутри функции, наружу-то их не вытащить... Как я передам их туда куда хочу..?



Цитата:
Сообщение от ZackMercury Посмотреть сообщение
exsites, друг мой, успокойтесь вы, расслабьтесь, отдохните.
Существуют в мире программирования глобальные - общие, и локальные переменные.
Да спокоен я как стадо мамонтов:-)))
Глобальные переменные зло. Во всяком случае в php.

Меня интересует, могу ли я результат выполнения функции передать в другую функцию как я написал в предыдущем посте? Можно или нет? Или мне надо весь код заново переписывать ввиду того что надо по другому?

Старый 06.11.2015, 21:28
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 40  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
нет ни одного довода в пользу асинхронных методов там, где нужны (были бы удобнее) синхронные
Но здесь-то не тот случай. Здесь имеется пользователь, которому надо что-то насвистывать, пока что-то грузится. Это же тебе не PHP, где все процессы и так фоновые и пользователю пабарабану, что весь код скрипта ждет, пока что-то куда-то загрузится, пользователь ждет конечного результата в той или иной форме, тупо втыкая в экран.

Кстати! Этот процесс тоже, выходит, асинхронный: пока ты крутишь перед носом пользователя фронтенд-прелоадер, где-то там в бэкенде скрипт синхронно для себя, но асинхронно для пользователя, пыхтит над результатом, которого этот самый пользователь ожидает.
__________________
Поймай яблоко 2!

Создать новую тему Ответ Часовой пояс GMT +4, время: 06:01.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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