![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2011
Сообщений: 366
|
Не пойму, почему я не могу обратиться к аргументу foto через родителя - муви клип, пишет свойство неопределено((
|
|
|||||
|
Регистрация: Sep 2003
Сообщений: 28
|
Если есть ссылка foto, то используйте ссылку.
var fotoMovie:MovieClip = new MovieClip; fotoMovie.addChild(foto); prvWidth = foto.width; prvX = foto.x; |
|
|||||
|
Регистрация: Sep 2011
Сообщений: 366
|
не, не помагает блин не могу понять в чём проблема, ведь foto это и есть имя лоадера, а обратиться к нему не могу(((
function ldfoto (f:String) { //trace ("свич"+_switch+"login"+lentaFoto[_switch].@login); var foto:Loader = new Loader; foto.load(new URLRequest(f)); // здесь нужно загружать фото foto.contentLoaderInfo.addEventListener(Event.COMPLETE, addFirst); function addFirst ():void{ if (foto.width > 100){ foto.width=100; foto.scaleY = foto.scaleX; } if (foto.height>100){ foto.height=100; foto.scaleX = foto.scaleY; } var fotoMovie:MovieClip = new MovieClip; fotoMovie.addChild(foto); fotoMovie.x =prvWidth+prvX+3; fotoMovie.y = 100-fotoMovie.foto.height; |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Потому что вложенные функции — Зло.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Sep 2011
Сообщений: 366
|
а что же делать? и в чём причина?
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Вынести function addFirst ():void из функции ldfoto (f:String)
Причина проста — в момент, когда будет вызван addFirst (обработчик события), функция ldfoto уже отработает (это доли миллисекунд), и доступа к ее переменным больше не будет. А var foto это локальная переменная. Добавлено через 4 минуты И включите уже строгий режим компиляции. Ваш код невозможен. Позвольте компилятору указать на Ваши ошибки. Например, Ваш обработчик не принимает параметр Событие. А должен.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Sep 2011
Сообщений: 366
|
Цитата:
а почему я вот так тоже не могу вызвать, объект foto, ведь он добавлен на сцену в мувеклипе и по идее должен иметь имя такое как при добавлении(( я посмарел у меня стоит строгий режим компиляции х) Последний раз редактировалось grafillo!; 14.10.2013 в 18:17. |
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Примерно вот так -
package { import flash.display.DisplayObject; import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.events.IOErrorEvent; import flash.net.URLRequest; public class NewClass extends Sprite { public function NewClass() { if (stage)init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(event:Event=null):void { removeEventListener(Event.ADDED_TO_STAGE, init); var loader:Loader = new Loader(); super.addChild(loader); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_completeHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loader_ioErrorHandler); try { loader.load(new URLRequest('img0.png')); } catch (error:Error) { trace(error.message); } } private function loader_ioErrorHandler(event:IOErrorEvent):void { trace(event.type) } private function loader_completeHandler(event:Event):void { trace(event.type); /** * и вот тут уже делаете что Вам угодно с загруженным контентом * обратится к loaderu - event.target * обратится к контенту - event.target.content */ } } } Последний раз редактировалось Akopalipsis; 14.10.2013 в 18:53. |
|
|||||
|
Цитата:
|
|
|||||
|
Регистрация: Sep 2011
Сообщений: 366
|
вообщем с лоадером разобрался, нужно создать дисплей обжект и приравнять лоадер тогда норм можно через дисплей обж обращаться
возникает следующий вопрос, не могу обратиться к объекту лента текст добавленному в foto:MovieClip, те функция lentaOver не работает function addLentaAtribute (foto:MovieClip){ var lentaTxt:lentaText = new lentaText; lentaTxt.width = 300; lentaTxt.y = 100; foto.addChild(lentaTxt); foto.addEventListener(MouseEvent.CLICK, openDialogWindow); foto.addEventListener(MouseEvent.MOUSE_OVER, lentaOver); foto.addEventListener(MouseEvent.MOUSE_OUT, lentaOut); } function lentaOver (e:MouseEvent){ e.target.lentaTxt.width = 200; } Последний раз редактировалось grafillo!; 14.10.2013 в 20:06. |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:50. |
|
|
« Предыдущая тема | Следующая тема » |
|
|