Показать сообщение отдельно
Старый 04.07.2013, 19:22
StasHappy вне форума Посмотреть профиль Отправить личное сообщение для StasHappy Найти все сообщения от StasHappy
  № 8  
Ответить с цитированием
StasHappy

Регистрация: Jan 2013
Сообщений: 40
Цитата:
А не пробовали изменять размер в контейнере? думаю это и есть выход
В каком контейнере? Имелось ввиду в прелоадере?

Цитата:
Код AS3:
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.display.MovieClip;
 
var ldr:Loader = new Loader();
var url:URLRequest = new URLRequest("test1.swf");
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE ,completeListener);
var loadMovieSwf:MovieClip;
ldr.load(url);
function completeListener(e:Event):void
{
	loadMovieSwf = e.target.content;
	loadMovieSwf.addEventListener(Event.ADDED_TO_STAGE, addEvListener);
	addChild(loadMovieSwf);
}
function addEvListener(e:Event):void
{
	loadMovieSwf.removeEventListener(Event.ADDED_TO_STAGE, addEvListener);
	loadMovieSwf.width = 300;
	loadMovieSwf.height = 400;
}
Попробовал. Ничего не вышло. Я думаю проще будет скинуть полный код.

Первый кадр:
Код AS3:
import flash.events.*;
import flash.system.Security;
import flash.system.LoaderContext;
import flash.display.Loader;
import flash.net.URLRequest;
 
var ldr:Loader = new Loader();
var url:String = loaderInfo.parameters.path;
Security.allowDomain("*");
Security.loadPolicyFile("crossdomain.xml");
var ldrContext:LoaderContext = new LoaderContext(true);
 
if(url==null) { // на это не обращайте внимание. поставил для эксперимента
	ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,swf_loaded);
	ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, swf_error);
	ldr.load(new URLRequest("c:/test1.swf"),ldrContext);
}
 
function swf_error(e:Event):void {
    removeEventListener(Event.COMPLETE,swf_loaded);
}
function swf_loaded(e:Event):void {
    nextFrame();
}
 
stop();
Второй кадр:
Код AS3:
stage.scaleMode = "noBorder";
var delitel = 0;
var movikWidth = ldr.contentLoaderInfo.width;
var movikHeight = ldr.contentLoaderInfo.height;
 
trace(movikWidth);
trace(movikHeight);
trace("-");
trace(ldr.width);
trace(ldr.height);
 
	if(movikWidth >= movikHeight) {
		if(movikWidth/movikHeight >= stage.stageWidth/stage.stageHeight) {
			delitel = stage.stageHeight/movikHeight;
			ldr.width = movikWidth*delitel;
			ldr.height = movikHeight*delitel;
		} else {
			delitel = stage.stageWidth/movikWidth;
			ldr.width = movikWidth*delitel;
			ldr.height = movikHeight*delitel;
		}
	} else {
			delitel = movikWidth/stage.stageWidth;
			ldr.width = movikWidth/delitel;
			ldr.height = movikHeight/delitel;	
	}
 
	ldr.x = (stage.stageWidth - movikWidth)/2;
	ldr.y = (stage.stageHeight - movikHeight)/2;
	addChild(ldr);
Осталось всего лишь изменить ширину и высоту загруженного объекта. То есть, заменить ldr.height и ldr.width чем то другим. Внизу я выложил flask'ку, которую пытаюсь загрузить в прелоадер и подогнать её размер.
Вложения
Тип файла: swf test1.swf (1.4 Кб, 35 просмотров)