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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 31.08.2010, 20:23
Dr.Coder вне форума Посмотреть профиль Отправить личное сообщение для Dr.Coder Найти все сообщения от Dr.Coder
  № 1  
Ответить с цитированием
Dr.Coder

Регистрация: Aug 2010
Сообщений: 6
По умолчанию Как растянуть картинку по всему кадру

Столкнулся с такой проблемой.

Есть флеш ролик, размерами 1024 на 768, вывожу ее на страницу через SwfObject


Код:
<div id="flashcontent"></div>
<script type="text/javascript">
var fl = new SWFObject("images/flash/index_bg.swf", "movie", "100%", "100%", "10");
fl.addParam("quality", "high");
fl.addParam("menu", "false");
fl.addParam("wmode", "transparent");
fl.addParam("wmode", "opaque"); 
fl.addParam("scale", "noscale");
fl.write("flashcontent");
</script>
CSS
Код:
#flashcontent {
 width: 100%;
 height: 100%;
}
Флешка растягивается на 100% по ширине и высоте, на любом разрешении экрана,
в плане верстки все хорошо.
но! во флеш ролике есть картинка которая играет роль фона, размер картинки 1024 на 768.
выводил картинку методом File-Import to stage

получилось следующее, когда сайт открываешь на разрешении 1024 на 768 то сайт смотрится отлично, но если открыть его на разрешении которое больше 1024 на 768 то картинка не тянется больше ее размера а сама флешка тянется и остаются белые отступы.
То есть тянется флешка без картинки которая в ней.
может вставить фото в контейнер, и тянуть его?

пробовал в 1й кадр с картинкой вставлять, Stage.scaleMode = "exactFit";
флеш начал материться на ошибку)

как можно вывести графику в ролик, чтобы она при масштабировании растягивалась. есть какой-нибудь метод stretch bitmap?)
или вывести графику через AS?

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

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
Stage.scaleMode = "exactFit";
правильно ругался, это не as1/as2
Код AS3:
stage.scaleMode = "exactFit";
Смотрим свойства у stage width и height, при изменении их ресайзим фон.
__________________
тут я

Старый 01.09.2010, 02:39
Dr.Coder вне форума Посмотреть профиль Отправить личное сообщение для Dr.Coder Найти все сообщения от Dr.Coder
  № 3  
Ответить с цитированием
Dr.Coder

Регистрация: Aug 2010
Сообщений: 6
Код AS1/AS2:
var w = stage.width;
var h = stage.height;
как получить размер документа понял)
но вот как исходя из них изменить размер картинки?

главное ведь изменить размер в большую сторону, а потом флеш сам будет ресайзить в меньшую.
импортировал фон в либу, дал название классу bg.
но вот как теперь изменить размер bg ?

Добавлено через 25 минут
Код AS3:
var w = stage.width;
var h = stage.height;
 
//stage.scaleMode = StageScaleMode.EXACT_FIT;
 
import flash.display.Bitmap; 
import flash.display.BitmapData;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
 
var ldr:Loader = new Loader();
var urlReq:URLRequest = new URLRequest("3.jpg");
ldr.load(urlReq);
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);
addChild(ldr);
function loaded(event:Event):void
 
ldr.x = w;
ldr.y = h;

ругается на:
Код:
function does have not a body
в теории должно работать) но в чем ошибка?)

Старый 01.09.2010, 03:05
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 4  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Блин это не AS2 !!!
Код AS3:
var w = stage.stageWidth;
var h = stage.stageHeight;

Старый 01.09.2010, 03:11
Dr.Coder вне форума Посмотреть профиль Отправить личное сообщение для Dr.Coder Найти все сообщения от Dr.Coder
  № 5  
Ответить с цитированием
Dr.Coder

Регистрация: Aug 2010
Сообщений: 6
не судите строго)) только 5 дней изучаю AS 3(

Старый 01.09.2010, 03:28
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 6  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Ну так почитайте книжки. я изучаю 2 недели и то уже много что знаю. половину свойств уже выучил и хелпом не пользуюсь. Но все равно есть много неосознанного еще, надо учится. А вы сразу полезли вглубь. Сначала почитайте про ООП. В кадрах писать не стоит, это пережитки АС2.



Код AS3:
package {
 
import flash.net.*
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.*;
 
public class Main extends Sprite {
public function Main():void {
 
   var ldr:Loader = new Loader();
   var urlReq:URLRequest = new URLRequest("3.jpg");
   ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);
   addChild(ldr);
  try {
   ldr.load(urlReq);
  } catch(e:Error) { // error 
 }
 
}
private function loaded(e:Event) {
e.target.width = stage.stageWidth;
e.target.height = stage.stageHeight;
}
}
}


Последний раз редактировалось in4core; 01.09.2010 в 03:33.
Старый 01.09.2010, 11:39
Dr.Coder вне форума Посмотреть профиль Отправить личное сообщение для Dr.Coder Найти все сообщения от Dr.Coder
  № 7  
Ответить с цитированием
Dr.Coder

Регистрация: Aug 2010
Сообщений: 6
in4core - огромное спасибо )

ошибок при компиле нет, засунул код в отдельный AS файл, но картинку в кадр так и не вывел..(

Добавлено через 4 минуты
файл расположен прям напротив мувика
Код AS1/AS2:
3.jpg
Добавлено через 19 минут
я подозреваю конечно что в первый кадр надо добавить)
addChild();

попробовал написать код по проще.
Код AS3:
var w = stage.width;
var h = stage.height;
 
var loader:Loader = new Loader();
			var url:URLRequest = new URLRequest("3.jpg");
			loader.load(url);
			loader.x = w;
			loader.y = h;
			addChild(loader);
картинка вывелась.
но почему все-таки не работает класс?


Последний раз редактировалось Dr.Coder; 01.09.2010 в 12:00.
Старый 01.09.2010, 11:58
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 8  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
@in4core
Цитата:
try {
ldr.load(urlReq);
} catch(e:Error) { // error
Что это за ерунда? Нужно подписываться на события ошибок загрузки, try-catch здесь вообще ничего не даст, ибо вызов метода load просто не может выкинуть ошибку.
__________________
...вселенская грусть

Старый 01.09.2010, 12:08
Dr.Coder вне форума Посмотреть профиль Отправить личное сообщение для Dr.Coder Найти все сообщения от Dr.Coder
  № 9  
Ответить с цитированием
Dr.Coder

Регистрация: Aug 2010
Сообщений: 6
пробовал добавить в первый кадр:
Код AS3:
var picture:Main = new Main();
addChild(picture);
ругается на:
Код AS1/AS2:
Scene 1, Layer 'Layer 1', Frame 1, Line 1	1046: Type was not found or was not a compile-time constant: LoadPictures.
Scene 1, Layer 'Layer 1', Frame 1, Line 1	1180: Call to a possibly undefined method LoadPictures.
Добавлено через 4 часа 26 минут
Код AS3:
var picture:Sprite = new Sprite();
addChild(picture);

вроде-бы все правильно ошибок нет, но картинка не выводится ..(


Последний раз редактировалось Dr.Coder; 01.09.2010 в 14:10.
Старый 02.09.2010, 10:16
zatoichi вне форума Посмотреть профиль Отправить личное сообщение для zatoichi Найти все сообщения от zatoichi
  № 10  
Ответить с цитированием
zatoichi
 
Аватар для zatoichi

Регистрация: Aug 2010
Адрес: 55.1° с.ш. 82.56° в.д.
Сообщений: 25
По-поводу растягивания... У меня обратная проблема))) основной swf файл подгружается swf прелоадером, в котором scaleMode.SHOW_ALL (так нужно), а в основном файле есть картинка Bitmap нужно чтобы она не скейлилась, а была статична. Как такое сделать?.

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

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

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


 


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


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