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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 03.09.2011, 12:50
zaero33 вне форума Посмотреть профиль Отправить личное сообщение для zaero33 Найти все сообщения от zaero33
  № 1  
Ответить с цитированием
zaero33

Регистрация: May 2011
Сообщений: 9
Question Как передать картинку из PHP в Flash.

Добрый день, уважаемые знатоки флеша.

Мне необходимо передать картинку из php в flash. Но проблема в том, что картинка не "физическая" (файл) а в виде переменной. В связи с этим 2 вопроса:

1. Нагуглил что картинку можно подтягивать с сервера после загрузки swf:
Вот тут звучал совет, что действовать нужно так же как с физической картинкой.
Пытался воспроизвести вот так:

PHP файл из которого должна подгружаться картинка (img.php):
PHP код:
<?php
// Create a blank image and add some text
$im imagecreatetruecolor(12020);
$text_color imagecolorallocate($im2331491);
imagestring($im155,  'A Simple Text String'$text_color);

// Set the content type header - in this case image/jpeg
header('Content-type: image/jpeg');

// Output the image
imagejpeg($im);

// Free up memory
imagedestroy($im);
?>
Код флешки, призванный подтягивать картинку:
Код AS3:
package  {
 
	import flash.display.MovieClip;
	import flash.display.Loader;
	import flash.net.URLRequest;
	import flash.events.ProgressEvent;
 
	public class f1 extends MovieClip {
 
		var myLoader:Loader = new Loader();
		var fileRequest:URLRequest = new URLRequest("img.php");
 
		public function f1() {
			// constructor code
			doit();
		}
 
		public function doit() {			
			myLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressStatus);
			myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderReady);
			myLoader.load(fileRequest);
		}		
 
		public function onProgressStatus(e:ProgressEvent) {   
      		// this is where progress will be monitored     
      		trace(e.bytesLoaded, e.bytesTotal); 
		}
 
		public function onLoaderReady(e:Event) {     
      		// the image is now loaded, so let's add it to the display tree!     
      		addChild(myLoader);
		}
	}		
}
При старте флешки в лог выводятся вот такие печальные строки:
E:\temp\F1\img.php - 0 bytes after decompression
и загрузки картинки не происходит.

Если поменять "img.php" на картинку ("333.jpg"), то картинка подгружается как надо. Подскажите пожалуйста, в чем тут проблема?

Проект для курочения:
f2.rar

2. Вот тут нашел способ передачи параметров в флешку до ее загрузки. Возможно ли так же передать картинку в флешку до ее загрузки, а не подтягивать с сервера после, как в пункте 1?

Заранее благодарен за ответы.

Старый 03.09.2011, 13:03
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 2  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
В браузере по адресу img.php - видите картинку?
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 03.09.2011, 13:19
zaero33 вне форума Посмотреть профиль Отправить личное сообщение для zaero33 Найти все сообщения от zaero33
  № 3  
Ответить с цитированием
zaero33

Регистрация: May 2011
Сообщений: 9
Ага, большое спасибо за наводку. Не работало потому что лежало локально а не на хосте.
Закинул все это на хост и заработало.
Остается вопрос №2: Возможно ли передать картинку в флешку до ее загрузки (как при передаче параметров через FlashVars ), а не подтягивать с сервера после, как в пункте 1?


Последний раз редактировалось zaero33; 03.09.2011 в 13:34.
Старый 03.09.2011, 15:47
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 4  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Можно, но изврат по-моему. Кодируешь картинку в base64, передаешь во флэшку как переменную во flashvars (но там может быть неприятное ограничение на размер) или флэшка дёргает жабаскрипт функцию, которая отдает ей картинку. Во флэшке декодируем из base64 в ByteArray, пихаем в Loader при помощи loadBytes - получаем что надо.
PS: делал локализирующийся втроенный прелоадер - таким не страдал, просто грузил картинку.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 03.09.2011, 17:24
zaero33 вне форума Посмотреть профиль Отправить личное сообщение для zaero33 Найти все сообщения от zaero33
  № 5  
Ответить с цитированием
zaero33

Регистрация: May 2011
Сообщений: 9
Ага, т.е. загрузка через Loader по методу 1 - это наиболее простой и нересурсожористый способ - верно?

Старый 10.10.2012, 04:31
pomuс вне форума Посмотреть профиль Отправить личное сообщение для pomuс Найти все сообщения от pomuс
  № 6  
Ответить с цитированием
pomuс

Регистрация: Sep 2012
Сообщений: 204
ребята, использовал сокращеный код выше, но моя капча с PHP не грузится...
в html загрузка этой картинки выглядит так .
PHP код:
<img src="CaptchaSecurityImages.php?width=100&amp;height=40&amp;characters=5" alt="captcha" />
<
input id="security_code" name="security_code" type="text" /> 
Вот код в АС3
Код AS3:
var myLoader:Loader = new Loader();
		var fileRequest:URLRequest = new URLRequest("CaptchaSecurityImages.php");
 
		function doit() {			
 
			myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderReady);
			myLoader.load(fileRequest);
		}
		doit();
 
		function onLoaderReady(e:Event) {     
 
      		addChild(myLoader);
		}
что же не так?

Старый 10.10.2012, 04:37
oleg_tomenko вне форума Посмотреть профиль Отправить личное сообщение для oleg_tomenko Найти все сообщения от oleg_tomenko
  № 7  
Ответить с цитированием
oleg_tomenko

Регистрация: Feb 2010
Адрес: Донецк
Сообщений: 34
php-скрипты надо подгружать URLLoaderом. А то, что он вернет, уже будет ссылка на картинку, как я понял. Ее нужно грузить уже обычным Лоадером.






_____________________________________________

Помогаю новичкам разбираться с флэшом и Апи Вконтакте. http://vk.com/club37753830

Старый 10.10.2012, 18:29
pomuс вне форума Посмотреть профиль Отправить личное сообщение для pomuс Найти все сообщения от pomuс
  № 8  
Ответить с цитированием
pomuс

Регистрация: Sep 2012
Сообщений: 204
не очень понял если честно... то есть подгрузил пхп, а из него еще взть вытянуть картинку? там в ПХП нету таких переменных отдельно на картнку
PHP код:
<?php 
session_start
();

if( isset(
$_POST['submit'])) {
   if( 
$_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code'] ) ) {
        
// Insert you code for processing the form here, e.g emailing the submission, entering it into a database. 
        
echo 'Thank you. Your message said "'.$_POST['message'].'"';
        unset(
$_SESSION['security_code']);
   } else {
        
// Insert your code for showing an error message here
        
echo 'Sorry, you have provided an invalid security code';
   }
} else {
?>

    <form action="form.php" method="post">
        <label for="name">Name: </label><input type="text" name="name" id="name" /><br />
        <label for="email">Email: </label><input type="text" name="email" id="email" /><br />
        <label for="message">Message: </label><textarea rows="5" cols="30" name="message" id="message"></textarea><br />
        <img src="CaptchaSecurityImages.php?width=100&height=40&characters=5" /><br />
        <label for="security_code">Security Code: </label><input id="security_code" name="security_code" type="text" /><br />
        <input type="submit" name="submit" value="Submit" />
    </form>

<?php
    
}
?>
я в ПХП делетант, понадобилось только для капчи ервый раз за все время...

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
Сообщение от pomuс Посмотреть сообщение
что же не так?
Код AS3:
var fileRequest:URLRequest = new URLRequest("CaptchaSecurityImages.php?width=100&amp;height=40&amp;characters=5");
Добавлено через 4 минуты
oleg_tomenko, скажите, вы действительно считаете, что при запросе к серверу вы "подгружаете php-скрипты"? (если не брать во внимание случаи крайней криворукости того, кто ставил сервер, когда действительно можно скачать сам скрипт, а не результат его работы).
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 10.10.2012, 22:30
pomuс вне форума Посмотреть профиль Отправить личное сообщение для pomuс Найти все сообщения от pomuс
  № 10  
Ответить с цитированием
pomuс

Регистрация: Sep 2012
Сообщений: 204
Цитата:
Сообщение от alatar Посмотреть сообщение
Код AS3:
var fileRequest:URLRequest = new URLRequest("CaptchaSecurityImages.php?width=100&amp;height=40&amp;characters=5");
Добавлено через 4 минуты
еёёёё маё! спасибо спаситель )) как всегда ответ на поверхности, а я уже голову ломаю какой день.!!

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

Теги
AS3 , php , изображение
Опции темы
Опции просмотра

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

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


 


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


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