2009-06-24 3 views
0

Я недавно начал играть с as3, которые выглядят довольно хорошо, проблема в том, что я родом из as2, и я полностью потерян.as3 Я потерян, как я могу перемещать разные текстовые объекты?

Я Тринг импортировать текст из 4 текстовых файлов затем переместить их на поверх другой:

text1 х = 100, text2 х = 150 text3 х = 200 и т.д ..

Здесь где я застрял:

import flash.display.MovieClip; 
import flash.display.Loader; 
import flash.events.*; 
import flash.net.URLRequest; 
import caurina.transitions.Tweener; 

var myTextLoader:URLLoader = new URLLoader(); 
var myTextField_txt:TextField = new TextField(); 
myTextField_txt.wordWrap=true; 
myTextField_txt.autoSize=TextFieldAutoSize.CENTER; 

var i:int = 0; 
var ipsilon:int = 200; 

for(i;i<5;i++) { 
     myTextLoader.addEventListener(Event.COMPLETE, onLoaded); 
    myTextLoader.load(new URLRequest("text"+i+".txt")); 
} 
function onLoaded(e:Event):void { 
    var testo = e.target.data; 
    styleMe(testo); 
} 
function styleMe(testo){ 
    //Associamo il testo alla variabile 
    myTextField_txt.text = testo; 
    //Formato Carattere 
    var myFormat:TextFormat = new TextFormat(); 
    myFormat.size = 15; 
    myFormat.align = TextFormatAlign.CENTER; 
    myTextField_txt.defaultTextFormat = myFormat; 
    //Formato Varie 
    myTextField_txt.textColor = 0x000000; 
    myTextField_txt.border = true; 
    myTextField_txt.borderColor = 0x999999; 
    myTextField_txt.width = 200; 
    myTextField_txt.height = 20; 
    myTextField_txt.background = true; 
    myTextField_txt.backgroundColor = 0xFFCC00; 
    //Posizione 
    myTextField_txt.x = 0; 
    myTextField_txt.y = -100; 
    var text1 = addChild(myTextField_txt); 
    tweenMe(text1); 
} 
function tweenMe(text1){ 
    Tweener.addTween(text1, {x:450,y:200, time:5}); 
} 

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

Большое спасибо за ваше терпение

Дэвид

ответ

1

Эмм, было бы Hacky решение ... но вы должны попробовать чистое решение, используя классы ...

я не совсем уверен, что вы хотите сделать, но это должно сделать трюк:

package { 
    import caurina.transitions.Tweener; 
    import flash.events.Event; 
    import flash.net.*; 
    import flash.text.*; 
    public class MyText extends TextField { 
     private var _tweenParams:Object; 
     public function MyText(location:String, tweenParams:Object, initVars:Object = null) { 

      this._tweenParams = { }; 
      for (var name:String in tweenParams) this._tweenParams[name] = tweenParams[name]; 
      for (name in initVars) this[name] = initVars[name]; 

      (new URLLoader(new URLRequest(location))).addEventListener(Event.COMPLETE, onLoad); 

      var myFormat:TextFormat = new TextFormat(); 
      myFormat.size = 15; 
      myFormat.align = TextFormatAlign.CENTER; 
      this.defaultTextFormat = myFormat; 

      this.textColor = 0x000000; 
      this.border = true; 
      this.borderColor = 0x999999; 
      this.width = 200; 
      this.height = 20; 
      this.background = true; 
      this.backgroundColor = 0xFFCC00;    
     } 
     private function onLoad(e:Event):void { 
      this.text = e.target.data; 
      Tweener.addTween(this, this._tweenParams); 
     } 
    } 
} 

, а затем просто использовать его как это:

this.addChild(new MyText("text1.txt",{x:0,y:0, time:5},{y:-100})); 
this.addChild(new MyText("text2.txt",{x:200,y:0, time:5},{y:-100})); 
this.addChild(new MyText("text3.txt",{x:400,y:0, time:5},{y:-100})); 
this.addChild(new MyText("text4.txt",{x:600,y:0, time:5},{y:-100})); 

надежда, что помогает ...

Greetz

back2dos

+0

Похоже, это правильно. но он вызывает эту ошибку: 5000: класс «Main» должен подклассифицировать «flash.display.MovieClip», поскольку он связан с библиотечным символом этого типа. – 0plus1

+0

Он выдает ту же ошибку, даже если я добавляю: import flash.display.MovieClip '; – 0plus1

+0

Nevermind, я использовал MyText.as как класс документа. После импорта его в основной кадр все работает .. Не могу понять, почему хотя .. – 0plus1

Смежные вопросы