![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Dec 2015
Сообщений: 5
|
Здравствуйте!
Я новичок в программировании AS3. Возникла проблема. Скажу сразу: Да, я искал ответ на этом форуме, и да - находил разные варианты. Но, видимо, мой случай несколько уникален, потому и спрашиваю. Работаю в FlashDevelop + Flex. Код привожу нужный, ненужное выкинул. Есть основной код: main.as package { import flash.display.Sprite; import flash.events.Event; import flash.sampler.NewObjectSample; public class Main extends Sprite { private var usrprofile : Profile; private var provider : Provider; private var srvdata : ServerData; private var loadscr : LoadingScreen; private var gameData : GameData; public function Main() { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); gameData = new GameData(); provider = new Provider( stage, gameData ); srvdata = new ServerData( gameData ); usrprofile = new Profile( srvdata, gameData ); loadscr = new LoadingScreen(); loadscr.isvisible = false; addEventListener(Event.ENTER_FRAME, newFrame ); } private function newFrame(e:Event = null):void { switch( sceneid ) { case scene_id_profile: addChild( usrprofile ); usrprofile.Update(); } break; } } } } profile.as package { public class Profile extends Sprite { private var gd:GameData; public function Profile( serv:ServerData, gamedata:GameData ) { super(); srvdata = serv; gd = gamedata; } public function Update():void { gd.LoadAva(); } } GameData.as package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.events.*; import flash.display.Loader; import flash.display.LoaderInfo; import flash.display.Sprite; import flash.net.URLRequest; public class GameData extends Sprite { public var user_photo:String; public var user_ava:Bitmap; public var loader:Loader; private var url:URLRequest; private var bitmapData:Bitmap; public function GameData() { user_photo = new String(); } public function LoadAva():void { loader = new Loader; loader.contentLoaderInfo.addEventListener( Event.COMPLETE, onLoadComplete ); url = new URLRequest( String("http://myweb.site/test.png") ); loader.load( url ); addChild(loader); } private function onLoadComplete(e:Event):void { 1: bitmapData = e.target.loader.contentLoaderInfo.content as Bitmap; 2: user_ava = new Bitmap( bmp.bitmapData ); } } } И вот она проблема: функция onLoadComplete обрывается на строке 1. Т.е. строка 2 не срабатывает, но при этом приложение работает, как ни в чем не бывало. Ни ошибок, ни Adobe FP Debug ничего не пишет. И в итоге изображения нет. Пробовал строку 1 делать так: Результат тот же. В чём проблема? Что я делаю не так? |
|
|||||
|
1. В e.target в методе onLoadComplete лежит ссылка на LoaderInfo, так-что бегать туда-сюда (e.target.loader.contentLoaderInfo...) смысла нет. Достаточно сделать:
Ну и по хорошему, всё-же должно быть так: 2. Вторая строка вообще никак не связана с первой т.к. в ней используется свойство bitmapData какого-то bmp, который в GameData даже не объявлен. |
|
|||||
|
Цитата:
Во-первых, советую проверять типы в документации. Нужно переименовать (чтоб не путаться) в Ну а дальше уже как написал FlashRus
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
|
Регистрация: Dec 2015
Сообщений: 5
|
Ага, спасибо! Вы правы и я был прав - делал также (просто код уже переломанный выложил).
Проблема оказалась грустнее - с локального сервера грузит, а с реального из интернета - нет. Не с протокола http, не с https. Есть рецепт? |
|
|||||
|
все дело в файле crossdomain.xml, который должен лежать в корне нужного домена, и разрешать загрузку для флешки, лежашей на указанном домене, либо для всех флешек *
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
|
Регистрация: Dec 2015
Сообщений: 5
|
На моём сайте такой лежит. Т.е. получается, что если я захочу слизнуть во флеш изображение, то придется юзать php-прокладку на своём сайте между флеш и сторонним сайтом? А напрямую никак-никак совсем? Всё ясно...
Ладно, в любом случае, всем огроменное спасибо за помощь и консультации! Креатива всем! Добавлено через 15 минут Добавляю: при выгрузке флеш в ВК всё заработало. А в режиме теста на локальной машине не грузит из ВК. Стрёмно так разработочку вести... |
|
|||||
|
Цитата:
__________________
Ко мне можно и нужно обращаться на ты) |
![]() |
![]() |
Часовой пояс GMT +4, время: 17:14. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|