addChild () для перехода из внешнего файла .as - PullRequest
0 голосов
/ 21 января 2011

Когда я добавляю объект из библиотеки на сцену на временной шкале (помещая скрипт на временную шкалу), он работает, но когда я пытаюсь добавить его из этого файла .as, ничего не происходит.

package com.wld.utils {
    import flash.display.MovieClip;

    public class ISGallery extends MovieClip {
        var imageArray:Array = new Array();

        public function ISGallery() {

        }

        public function addImageURL(imageURL:String):void {
            imageArray.push(imageURL);
            var gallerythumb:ISGalleryThumb = new ISGalleryThumb();
            addChild(gallerythumb); // nothing happens
        }
    }
}

Спасибо.

1 Ответ

1 голос
/ 12 ноября 2011

сначала функция, из которой вы добавляете объект, это просто функция;

public function test()
{
//addcode here
}

, затем вернитесь в ваш основной класс и импортируйте com.wld.utils.ISGallery *

package
{

    import com.wld.utils.ISGallery;

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

var myExternalClass:ISGallery = new ISGallery();

, наконец, вы должны вызвать функцию, которая добавляет объекты, а затем добавитьновый класс.

addChild(myExternalClass);    
myExternalClass.hello();

теперь для примера.

Так вот как должен выглядеть основной код:

package
{
    import flash.display.*;
    import flash.text.*;
    import flash.events.*;
    import flash.ui.*;
    import flash.utils.*;
    import flash.media.*;
    import com.wld.utils.ISGallery;
    public class Test extends MovieClip
    {
        public function Test()
        {
            var myExternalClass:ISGallery = new ISGallery();

            addChild(myExternalClass);
            myExternalClass.hello();
        }
    }
}

и теперь внешний класс:

(примечание: расширенный спрайт также может быть мувиклипом)

package com.wld.utils
{
    import flash.display.*;
    import flash.text.*;
    import flash.events.*;
    import flash.ui.*;
    import flash.utils.*;
    import flash.media.*;
    public class ISGallery extends Sprite
    {
    var myFirstText:TextField = new TextField();
    var mySecondText:TextField = new TextField();
        public function ISGallery()
        {
        }
        public function hello()
        {
            myFirstText.text = "test";
            mySecondText.y = 40;
            mySecondText.text = "hello";
            addChild(myFirstText);
            addChild(mySecondText);
        }
    }
}

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

в выводе должен быть один текст с надписью "test"

, а другой примерно на 1/4 вниз, говоря "привет".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...