Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   attachMovie не работает внутри onLoad (http://www.flasher.ru/forum/showthread.php?t=82003)

MelDiz 02.07.2006 00:18

attachMovie не работает внутри onLoad
 
Ситуация: есть внешний XML и естественно функция onLoad, внутри данной функции не срабатывает метод attachMovie, если attachMovie вынести за пределы функции onLoad - всё работает. Та часть, которая относится к функции onLoad ошибок кажется не имеет поскольку работает корректно.

Код:
Код:

var news:XML = new XML();
System.useCodepage = true;
news.ignoreWhite = true;
news.load("topic3.xml");
news.onLoad = function(success) {
       
this.attachMovie("poi", "usluga12" , 1);

}

Спасибо за ответ

Nirth 02.07.2006 00:27

Ошибка в области видимости в методе onLoad, this ссылается не на текущий мувиклип, а на экземпляр класса XML - news.
можно попробывать так ( работает в 7, 8 и 9ом флэше)
Код:

import mx.utils.Delegate
System.useCodepage = true;
news.ignoreWhite = true;
news.load("topic3.xml");
news.onLoad = Delegate.create(this,loaded);
function loaded(success:Boolean):Void {
       
this.attachMovie("poi", "usluga12" , 1);

}


MelDiz 02.07.2006 02:41

Попробовал то, что вы, Nirth, написали - не работает(Flash MX Prof. 2004)
Честно говоря, не понял смысл строчек, буду благодарен если Вы объясните смысл след. сторочек :
1) import mx.utils.Delegate
2) news.onLoad = Delegate.create(this,loaded);

или выдадите готовое работающее решение

Спасибо

iNils 02.07.2006 02:54

Код:

var news:XML = new XML ();
System.useCodepage = true;
news.ignoreWhite = true;
news.load ("topic3.xml");
news.mc = this;
news.onLoad = function (success) {
        mc.attachMovie ("poi", "usluga12", 1);
};

Вобще советуется не использовать System.useCodepage = true, а работать с данными в кодировке utf-8

MelDiz 02.07.2006 03:21

а что значит свойство mc("news.mc")? просто аутпут выдаёт ошибку "There is no property with the name 'mc'"

iNils 02.07.2006 03:25

Цитата:

Сообщение от MelDiz
а что значит свойство mc("news.mc")? просто аутпут выдаёт ошибку "There is no property with the name 'mc'"

Вот они минусы типизации :) Так решалась проблема во времена 6-го плеера.
Код:

news = new XML ();
System.useCodepage = true;
news.ignoreWhite = true;
news.load ("topic3.xml");
news.mc = this;
news.onLoad = function (success) {
        mc.attachMovie ("poi", "usluga12", 1);
};


Nirth 02.07.2006 03:29

можно тогда так
Код:

news = new XML ();
System.useCodepage = true;
news.ignoreWhite = true;
news.load ("topic3.xml");
var selfRef:MovieClip = this;
news.onLoad = function (success) {
        selfRef.attachMovie ("poi", "usluga12", 1);
};

Цитата:

Попробовал то, что вы, Nirth, написали - не работает(Flash MX Prof. 2004)
Честно говоря, не понял смысл строчек, буду благодарен если Вы объясните смысл след. сторочек :
1) import mx.utils.Delegate
2) news.onLoad = Delegate.create(this,loaded);
забыл упомянуть чтоверсия должна быть 7.2 и нужно экспортировать мувик либо под Flash Player 6 ActionScript 2.0 либо под 7 с ActionScript 2.0.

в первой строчке мы импортируем класс mx.utils.Delegate
во второй создаем делегат ( про делегат можно в википедии или гугле почитать)

MelDiz 02.07.2006 13:04

Большое спасибо, последнее предложение Nirth работает, вот только проблемка тогда возникает с компонентом Scrollpane: SP не хочет нормально "прокручивать" ВЕСЬ тот мувик В КОТОРЫЙ мы аттачим мувик "poi"

MelDiz 02.07.2006 13:16

т.е. в SP не появляются полосы прокрутки, хотя должны,т.к. размер мувика который аттачится намного больше чем размер SP


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

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